-授权流程说明
OAuth2.0授权登录让用户使用HisiPHP身份安全登录第三方应用或网站,在HisiPHP用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(User-Token),通过User-Token可以进行HisiPHP开放平台授权关系接口调用,从而可实现获取HisiPHP用户基本开放信息和帮助用户实现基础开放功能等。
OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为:
1. 第三方发起授权登录请求,HisiPHP用户允许授权第三方应用后,HisiPHP会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2. 通过code参数加上AppID和AppSecret等,通过API换取User-Token;
3. 通过User-Token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
-第一步:请求CODE
请求方式:GET
请求地址:http://api.hisiphp.com/oauth/authorize
请求参数:
| 参数 | 是否必须 | 说明 |
| app_id | 是 | 应用唯一标识 |
| response_type | 是 | 固定值:code |
| redirect_uri | 是 | 授权地址,请使用urlEncode对链接进行处理 |
| scope | 是 | 应用授权作用域,拥有多个作用域用逗号(,)分隔 |
| state | 是 | 授权请求后原样带回给第三方,该参数可用于防止csrf攻击 |
用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数
-第二步:通过code获取User-Token
请求方式:GET
请求地址:http://api.hisiphp.com/oauth/token
请求参数:
| 参数 | 是否必须 | 说明 |
| app_id | 是 | 应用唯一标识 |
| grant_type | 是 | 固定值:authorization_code |
| timestamp | 是 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
| code | 是 | 填写第一步获取的code参数 |
| signature | 是 | 请求参数签名,点此查看签名算法 |
- 成功返回示例
{
"code": 200,
"message": "success",
"data": {
"openid": "FD8E157F15D6747F",
"user_token": "28C52ACF66BA91B0FD8E157F15D6747F",
"refresh_token": "456A2ACF66BG91B0FF8D157C15D4678E",
"expires_in": "7200"
}
}| 参数 | 说明 |
| code | 状态码(200 正常) |
| message | 结果说明,正常返回suceess |
| data | 数据结果 |
| └ openid | 授权用户唯一标识 |
| └ user_token | 接口调用凭证 |
| └ refresh_token | 刷新user_token的调用凭证 |
| └ expires_in | 凭证有效时间,单位:秒 |
- 失败返回示例
{
"code": 401,
"message": "Request timed out!"
}| 参数 | 说明 |
| code | 状态码 |
| message | 返回失败原因 |