1.简介

本步骤的作用
通过用户验证登录和授权,获取Access Token,为下一步获取用户的OpenID做准备,同时Access Token是应用在调用OpenAPI访问和修改用户数据时必须传入的参数。


移动端应用 可以直接获得AccessToken

对于应用而言,需要进行两步:
1. 获取Authorization Code;
2. 通过Authorization Code获取Access Token


2.过程详解

Step1:获取Authorization Code

请求地址请求方法
/oauth/authorizeGET

请求参数

参数类型是否必填最大长度描述示例值
response_typeString4授权类型,此值固定为“code”
client_idString32申请金康云登录成功后,分配给应用的appid
redirect_uriString256成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode
stateString120原样带回参数
scopeString15授权模式,此值固定为“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/tokenGET/POST

请求参数

参数类型是否必填最大长度描述示例值
grant_typeString18授权类型,此值固定为“authorization_code”
client_idString32申请金康云登录成功后,分配给应用的appid
redirect_uriString256与上面一步中传入的redirect_uri必须保持一致
client_secretString32申请金康云登录成功后,分配给网站的appkey。
codeString32上一步返回的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_tokenGET/POST

请求参数

参数类型是否必填最大长度描述示例值
grant_typeString13授权类型,此值固定为“refresh_token”
client_idString32申请金康云登录成功后,分配给应用的appid
client_secretString32申请金康云登录成功后,分配给网站的appkey。
refresh_tokenString140

首次:使用在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