GET /authorize?response_type=code&client_id=s6BhdRkqt3&state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1HTTP/1.1 Host: server.example.com对比微信网页扫描授权请求CODE
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect步骤3:服务器回应客户端的URI,包含以下参数:
- code:表示授权码,必选项 。该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝 。该码与客户端ID和重定向URI,是一一对应关系 。
- state:如果客户端的请求中包含这个参数,认证服务器的回应也必须一模一样包含这个参数 。
HTTP/1.1 302 FoundLocation: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA &state=xyz步骤4:客户端向认证服务器申请令牌的HTTP请求,包含以下参数:
- grant_type:表示使用的授权模式,必选项,此处的值固定为"authorization_code" 。
- code:表示上一步获得的授权码,必选项 。
- redirect_uri:表示重定向URI,必选项,且必须与A步骤中的该参数值保持一致 。
- client_id:表示客户端ID,必选项 。
POST /token HTTP/1.1Host: server.example.comAuthorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JWContent-Type: application/x-www-form-urlencodedgrant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb步骤5:认证服务器发送的HTTP回复,包含以下参数:
- access_token:表示访问令牌,必选项 。
- token_type:表示令牌类型,该值大小写不敏感,必选项,可以是bearer类型或mac类型 。
- expires_in:表示过期时间,单位为秒 。如果省略该参数,必须其他方式设置过期时间 。
- refresh_token:表示更新令牌,用来获取下一次的访问令牌,可选项 。
- scope:表示权限范围,如果与客户端申请的范围一致,此项可省略 。
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-cache { "access_token":"2YotnFZFEjr1zCsicMWpAA", "token_type":"example", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", "example_parameter":"example_value" }从上面代码可以看到,相关参数使用JSON格式发送(Content-Type: application/json) 。此外,HTTP头信息中明确指定不得缓存 。
五、更新令牌如果用户访问的时候,客户端的"访问令牌"已经过期,则需要使用"更新令牌"申请一个新的访问令牌 。客户端发出更新令牌的HTTP请求,包含以下参数:
- granttype:表示使用的授权模式,此处的值固定为"refreshtoken",必选项 。
- refresh_token:表示早前收到的更新令牌,必选项 。
- scope:表示申请的授权范围,不可以超出上一次申请的范围,如果省略该参数,则表示与上一次一致 。
POST /token HTTP/1.1Host: server.example.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA
【学习一下OAuth2.0协议】
推荐阅读
- 喝茶不是学习 是生活 把玩 道就在其中
- 学习正山小种,更专业
- 微信按下这个按钮,可以知道谁把你拉黑了,赶快试一下吧
- 华为手机找回功能了解一下:帮你找回手机
- 失而复得 华为“查找手机”功能有多强大?快来了解一下
- 学习Android开发的二十套免费理想资源
- 日本宫城县中国留学生学习点茶 感受日本传统文化
- 地暖清洗后温度反而降低了 地暖清洗一下会不会改善温度
- 对一次 redis 未授权写入攻击的分析以及学习
- 停下你匆忙的脚步欣赏一下沿途的风景 放慢你匆匆的脚步