授权说明
应用程序可通过调用出口易开放平台提供的API获取到出口易客户的数据,因为涉及隐私,在使用前必须获得出口易客户的授权,而AccessToken(访问令牌)则做为用户唯一的授权标识。
出口易开放平台采用OAuth 2.0作为授权协议,授权流程可以简单归纳为(授权流程时序图):
获取临时令牌(code);
用临时令牌换取长时令牌(RefreshToken)以及访问令牌(AccessToken);
访问令牌过期后用长时令牌刷新访问令牌。
授权流程
-
应用发起授权请求
Get   https://openapi.chukou1.cn:81/oauth2/authorization?client_id={client_id}&response_type={response_type}&scope={scope}&redirect_uri={redirect_uri}
名称 |
描述 |
示例值 |
client_id |
注册应用时,分配给应用的唯一标示 |
M2Q3YTM4MTctMDM0Mi00NGUzLTk4OTctYjA5ZTViMjlkOTBi |
response_type |
此值可以为 code 或者 token 。在本流程中,此值为 code |
code |
scope |
授权范围,多个scope用英文逗号分隔 |
OpenApi |
redirect_uri |
应用的入口地址,授权临时令牌会以queryString的形式跟在该url后返回。此地址必须与在应用注册时填写的回调地址一致。 |
http://www.example.com/api/gettoken |
-
返回临时授权码code给应用
应用发出授权请求后,将会跳转至登陆页面。用户输入用户名密码,并确认授权,浏览器会重定向到 redirect_uri,并附加临时令牌(code)
http://www.example.com/api/gettoken?code={code}
-
使用code获取令牌
Post https://openapi.chukou1.cn:81/oauth2/token?client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&grant_type={grant_type}&code={code}
名称 |
描述 |
示例值 |
client_id |
注册应用时,分配给应用的唯一标示 |
M2Q3YTM4MTctMDM0Mi00NGUzLTk4OTctYjA5ZTViMjlkOTBi |
client_secret |
应用密钥,注册应用时分配的 |
abbcb34d-c4a6-47b5-bf60-26994d7eb36d |
redirect_uri |
应用的入口地址,授权临时令牌会以queryString的形式跟在该url后返回。此地址必须与在应用注册时填写的回调地址一致。 |
http://www.example.com/api/gettoken |
grant_type |
授权类型,在本流程中,此值为authorization_code |
authorization_code |
code |
临时令牌 |
NGZhNWNjYzgtY2Y3Ni00M2I1LTljOTItOTQyZGEzN2VkOTBi |
返回结果
{
"AccessToken":"ZTI1NWY1YzMtYWRlMi00M2JlLTljNDktMzhlMTc0MGYwMDBk",
"AccessTokenExpiresIn":44501,
"RefreshToken":"5d633d136b6d56a41829b73a424803ec",
"RefreshTokenExpiresIn":5256000,
"CustomerId":"J67"
}
名称 |
描述 |
示例值 |
AccessToken |
访问令牌 |
ZTI1NWY1YzMtYWRlMi00M2JlLTljNDktMzhlMTc0MGYwMDBk |
AccessTokenExpiresIn |
AccessToken有效期,单位分钟,现在固定是30天 |
44501 |
RefreshToken |
长时令牌 |
YWMxZjFjYWQtZmMwMC00ZGM3LWE5NjktMzI3NzM2NjRmNjJl |
RefreshTokenExpiresIn |
RefreshToken有效期,单位分钟,现在固定是10年 |
5256000 |
CustomerId |
客户代码 |
J67 |
注:access_token有效期(目前为1个月)较短,当access_token过期后,可以使用refresh_token进行刷新;通过refresh_token进行刷新后,旧的access_token就会失效。
使用令牌访问用户隐私数据
refreshToken换取accessToken流程
如果refreshToken有效并且accessToken已经过期,那么可以使用refresh_token换取access_token,不用重新进行授权,然后访问用户隐私数据。
Post https://openapi.chukou1.cn:81/oauth2/token?client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&grant_type={grant_type}&refresh_token={refresh_token}
名称 |
描述 |
示例值 |
client_id |
注册应用时,分配给应用的唯一标示 |
M2Q3YTM4MTctMDM0Mi00NGUzLTk4OTctYjA5ZTViMjlkOTBi |
client_secret |
应用密钥,注册应用时分配的 |
abbcb34d-c4a6-47b5-bf60-26994d7eb36d |
redirect_uri |
应用的入口地址,授权临时令牌会以queryString的形式跟在该url后返回。此地址必须与在应用注册时填写的回调地址一致。 |
http://www.example.com/api/gettoken |
grant_type |
授权类型,在本流程中,此值为refresh_token |
refresh_token |
refresh_token |
长时令牌 |
YWMxZjFjYWQtZmMwMC00ZGM3LWE5NjktMzI3NzM2NjRmNjJl |
返回结果
{
"AccessToken":"ZTI1NWY1YzMtYWRlMi00M2JlLTljNDktMzhlMTc0MGYwMDBk",
"AccessTokenExpiresIn":44501,
"RefreshToken":"5d633d136b6d56a41829b73a424803ec",
"RefreshTokenExpiresIn":5256000,
"CustomerId":"J67"
}
名称 |
描述 |
示例值 |
AccessToken |
访问令牌 |
ZTI1NWY1YzMtYWRlMi00M2JlLTljNDktMzhlMTc0MGYwMDBk |
AccessTokenExpiresIn |
AccessToken有效期,单位分钟 |
44501 |
RefreshToken |
长时令牌 |
YWMxZjFjYWQtZmMwMC00ZGM3LWE5NjktMzI3NzM2NjRmNjJl |
RefreshTokenExpiresIn |
RefreshToken有效期,单位分钟 |
5256000 |
CustomerId |
客户代码 |
J67 |
说明:业务系统-客户端 账号模块下,已新增 "应用授权管理"功能,可以让客户自主设置授权应用(启用/禁用)、设置过期时间
跳转到操作流程说明