OAuth
💡
Auth.js 旨在与任何 OAuth 服务协同工作,它支持 **OAuth 2.0** 和 **OpenID Connect**,并内置支持大多数流行的登录服务。
**Auth.js** 中的身份验证提供程序是预定义的 OAuth 配置,允许您的用户使用其在他们最喜欢的服务中的现有登录信息进行登录。您可以使用我们任何预定义的提供程序,或编写您自己的自定义 OAuth 配置。有关自定义或编写您自己的 OAuth 提供程序,请参阅我们的 配置 OAuth 提供程序 指南。
从高层次来看,我们支持的 OAuth **授权码** 流程通常包含 6 个部分
- 应用程序请求授权以从用户访问服务资源
- 如果用户授权了该请求,应用程序将收到授权授予
- 应用程序通过提供其自身身份的认证和授权授予来向授权服务器 (API) 请求访问令牌
- 如果应用程序身份已通过验证且授权授予有效,则授权服务器 (API) 将向应用程序颁发访问令牌。授权已完成。
- 应用程序向资源服务器 (API) 请求资源,并提供访问令牌进行身份验证
- 如果访问令牌有效,则资源服务器 (API) 将资源提供给应用程序
图表
以下是两个图表,它们以视觉方式说明了与上面描述的相同基本流程,即 OAuth 授权码流程。首先是序列图。
接下来是泳道图,它来自一篇很棒的文章,使用 Auth.js 和 SvelteKit 设置 OAuth,作者是 Andrey Mikhaylov,来自 mainmatter.com。
进一步阅读
要了解更多信息,请查看以下博客文章
- Aaron Parecki 的博客文章 简化的 OAuth2
- Postman 的博客文章 OAuth 2.0:隐式流程已死,请尝试使用 PKCE
- 使用 Auth.js 和 SvelteKit 设置 OAuth 博客文章