客户端必须得到用户的授权(authorization grant),才能获得令牌(access token)。OAuth 2.0 定义了四种授权方式。
- 授权码模式(authorization code)
- 简化模式(implicit)//不常用
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)// 不常用
一、授权码模式
1.用户访问客户端,后者将前者导向认证服务器。
2.用户选择是否给予客户端授权。
3.假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向 URI"(redirection URI),同时附上一个授权码。
4.客户端收到授权码,附上早先的"重定向 URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
5.认证服务器核对了授权码和重定向 URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。
二、密码模式
1.用户向客户端提供用户名和密码。
2.客户端将用户名和密码发给认证服务器,向后者请求令牌。
3.认证服务器确认无误后,向客户端提供访问令牌。
三、简化模式
1.客户端将用户导向认证服务器。
2.用户决定是否给于客户端授权。
3.假设用户给予授权,认证服务器将用户导向客户端指定的"重定向 URI",并在 URI 的 Hash 部分包含了访问令牌。
4.浏览器向资源服务器发出请求,其中不包括上一步收到的 Hash 值。
5.资源服务器返回一个网页,其中包含的代码可以获取 Hash 值中的令牌。
6.浏览器执行上一步获得的脚本,提取出令牌。
7.浏览器将令牌发给客户端。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于