-
开发者必读
授权说明
应用程序可通过调用出口易开放平台提供的API获取到出口易客户的数据,因为涉及隐私,在使用前必须获得出口易客户的授权,而AccessToken(访问令牌)则做为用户唯一的授权标识。
出口易开放平台采用OAuth 2.0作为授权协议,授权流程可以简单归纳为(授权流程时序图):
获取临时令牌(code);
用临时令牌换取长时令牌(RefreshToken)以及访问令牌(AccessToken);
访问令牌过期后用长时令牌刷新访问令牌。
授权流程
-
应用发起授权请求
Get   http://openapi.ck1info.com/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 http://openapi.ck1info.com/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 http://openapi.ck1info.com/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
说明:业务系统-客户端 账号模块下,已新增 "应用授权管理"功能,可以让客户自主设置授权应用(启用/禁用)、设置过期时间 跳转到操作流程说明