隐式流程
关于使用隐式流程进行认证。
隐式流是用户进行身份验证的两种方式之一,您的应用可以通过这种方式获取必要的访问令牌和刷新令牌。
Supabase Auth 已为您处理了该流程的实现细节,但理解隐式流与 PKCE 流的区别对于理解纯客户端与服务器端认证的差异非常重要。
工作原理
成功登录后,用户会被重定向回您的应用,URL 格式如下:
1https://yourapp.com/...#access_token=<...>&refresh_token=<...>&...
访问令牌和刷新令牌包含在 URL 片段中。
客户端库会:
- 检测此类 URL
- 提取访问令牌、刷新令牌及其他附加信息
- 将这些信息持久化存储到本地存储中,供库和您的应用后续使用
局限性
隐式流仅适用于客户端场景。根据设计,Web 浏览器不会将 URL 片段发送至服务器,这是出于安全考虑:
- 您的单页应用可能托管在第三方服务器上,第三方服务不应获取用户凭据
- 即使服务器由您直接控制,
GET
请求及其完整 URL 通常会被记录,这种方式可避免凭据泄露在请求或访问日志中
如需在服务器端获取访问令牌和刷新令牌,请使用 PKCE 流。