其步骤为:
- 客户端将用户导向认证服务器
- 用户决定是否给于客户端授权
- 假设用户给予授权,认证服务器将用户导向客户端指定的重定向URI,并在URI的Hash部分包含了访问令牌
- 浏览器向资源服务器发出请求,其中不包括上一步收到的Hash值
- 资源服务器返回一个网页,其中包含的代码可以获取Hash值中的令牌
- 浏览器执行上一步获得的脚本,提取出令牌
- 浏览器将令牌发给客户端
- response_type:表示授权类型,此处的值固定为 token,必选项
- client_id:表示客户端的ID,必选项
- redirect_uri:表示重定向的URI,可选项
- scope:表示权限范围,可选项
- state:表示客户端的当前状态,需动态指定,防止CSRF
- access_token:表示访问令牌,必选项
- token_type:表示令牌类型,该值大小写不敏感,必选项
- expires_in:表示过期时间,单位为秒 。如果省略该参数,必须其他方式设置过期时间
- scope:表示权限范围,如果与客户端申请的范围一致,此项可省略
- state:如果客户端的请求中包含这个参数,认证服务器回应与请求时相同的参数
根据上面的D步骤,下一步浏览器会访问Location指定的网址,但是Hash部分不会发送 。接下来的E步骤,服务提供商的资源服务器发送过来的代码,会提取出Hash中的令牌 。
7.1.5. 密码模式
密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码 。客户端使用这些信息,向"服务商提供商"索要授权 。
在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码 。
其步骤如下:
- 用户向客户端提供用户名和密码
- 客户端将用户名和密码发给认证服务器,向后者请求令牌
- 认证服务器确认无误后,向客户端提供访问令牌
- grant_type:表示授权类型,此处的值固定为 password,必选项
- username:表示用户名,必选项
- password:表示用户的密码,必选项
- scope:表示权限范围
客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向服务端进行认证 。
其步骤如下:
- 客户端向认证服务器进行身份认证,并要求一个访问令牌
- 认证服务器确认无误后,向客户端提供访问令牌
- granttype:表示授权类型,此处的值固定为 clientcredentials,必选项
- scope:表示权限范围,可选项
推荐阅读
- 做自媒体不知道怎么配图,有这6个网站就够了!质量好,免费用
- 新网站应该如何做好seo优化?
- 高并发性能测试,it人员必备技能
- 看资深站长教你如何做好网站运营
- Jmeter分布式部署测试做压力性能测试
- 推荐给专业人士10个渗透测试工具
- SEM推广和SEO推广有什么区别?
- 测试你成为富豪 测你以后会是个有钱人吗
- 日本化妆品检定 日本检测试剂准不准
- 学会了这些,网站优化不再迷茫!