登录授权

更新日期:2018-10-19 16:02:55

-授权流程说明

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          返回失败原因