1.简介
本步骤的作用:
通过用户验证登录和授权,获取Access Token,为下一步获取用户的OpenID做准备,同时Access Token是应用在调用OpenAPI访问和修改用户数据时必须传入的参数。
移动端应用 可以直接获得AccessToken
对于应用而言,需要进行两步:
1. 获取Authorization Code;
2. 通过Authorization Code获取Access Token
2.过程详解
Step1:获取Authorization Code
请求地址 | 请求方法 |
/oauth/authorize | GET |
请求参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
response_type | String | 是 | 4 | 授权类型,此值固定为“code” |
|
client_id | String | 是 | 32 | 申请金康云登录成功后,分配给应用的appid |
|
redirect_uri | String | 是 | 256 | 成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode |
|
state | String | 是 | 120 | 原样带回参数 |
|
scope | String | 是 | 15 | 授权模式,此值固定为“get_user_info” |
|
返回说明:
1. 如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。如:
PC网站:http://www.aimlt.com/demo/index.jsp?code=3DFGH************************67JKH&state=test
注意:此code会在10分钟内过期且只能使用一次。
2. 如果用户在登录授权过程中取消登录流程,对于PC网站,登录页面直接关闭;对于WAP网站,同样跳转回指定的回调地址,并在redirect_uri地址后带上usercancel参数和原始的state值,其中usercancel值为非零,如:
http://open.z.aimlt.com/demo/index.jsp?usercancel=1&state=test
Step2:通过Authorization Code获取Access Token
请求地址 | 请求方法 |
/oauth/token | GET/POST |
请求参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
grant_type | String | 是 | 18 | 授权类型,此值固定为“authorization_code” |
|
client_id | String | 是 | 32 | 申请金康云登录成功后,分配给应用的appid |
|
redirect_uri | String | 是 | 256 | 与上面一步中传入的redirect_uri必须保持一致 |
|
client_secret | String | 是 | 32 | 申请金康云登录成功后,分配给网站的appkey。 |
|
code | String | 是 | 32 | 上一步返回的authorization code。 如果用户成功登录并授权,则会跳转到指定的回调地址,并在URL中带上Authorization Code。 |
|
返回示例
如果成功返回,即可在返回包中获取到Access Token。 如:
{
"access_token":"39e0dea2ed932f0bbe6b6f29b2a763b362f8d30c7446b3e3da71dfa661f568979c7d0580614d83d8",
"expires_in":1578582025,
"refresh_token":"48c0f6d14e4a4ea8883c8f17d885380957fb992957bf9fb176fd2f0b6fe6794bcdf3acff434b29db1b6dc94f927618235703de8f927f59df811cb4dd",
"scope":"get_user_info"
}
返回参数说明
参数 | 描述 |
access_token | 授权令牌,Access_Token |
expires_in | 该access token的有效期,Unix时间戳 |
refresh_token | 在授权自动续期步骤中,获取新的Access_Token时需要提供的参数。注:refresh_token仅一次有效 |
scope | 授权模式 |
Step3:(可选)权限自动续期,刷新获取Access Token
请求地址 | 请求方法 |
/oauth/token/refresh_token | GET/POST |
请求参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
grant_type | String | 是 | 13 | 授权类型,此值固定为“refresh_token” |
|
client_id | String | 是 | 32 | 申请金康云登录成功后,分配给应用的appid |
|
client_secret | String | 是 | 32 | 申请金康云登录成功后,分配给网站的appkey。 |
|
refresh_token | String | 是 | 140 | 首次:使用在Step2中获取到的最新的refresh_token 。后续:使用刷新后返回的最新refresh_token |
|
返回示例
如果成功返回,即可在返回包中获取到Access Token。 如:
{
"access_token":"39e0dea2ed932f0bbe6b6f29b2a763b362f8d30c7446b3e3da71dfa661f568979c7d0580614d83d8",
"expires_in":7200,
"refresh_token":"bbb151b8a71975a6228ed9753a63807057b6573c1bc6605dab0141466ec68ba7d4db8e59e07f3b8e140b94b86e0f9d53e6c440b5ca6f48932a4429e8"
}
返回参数说明
参数 | 描述 |
access_token | 授权令牌,Access_Token |
expires_in | 该access token的有效期,单位秒 |
refresh_token | 在授权自动续期步骤中,获取新的Access_Token时需要提供的参数。注:refresh_token仅一次有效 |
下一步
获取用户OpenID_OAuth2.0