授权说明


      应用程序可通过调用出口易开放平台提供的API获取到出口易客户的数据,因为涉及隐私,在使用前必须获得出口易客户的授权,而AccessToken(访问令牌)则做为用户唯一的授权标识。

      出口易开放平台采用OAuth 2.0作为授权协议,授权流程可以简单归纳为(授权流程时序图):

  1. 获取临时令牌(code);

  2. 用临时令牌换取长时令牌(RefreshToken)以及访问令牌(AccessToken);

  3. 访问令牌过期后用长时令牌刷新访问令牌。

授权流程


  1. 应用发起授权请求

    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
  2. 返回临时授权码code给应用

    应用发出授权请求后,将会跳转至登陆页面。用户输入用户名密码,并确认授权,浏览器会重定向到 redirect_uri,并附加临时令牌(code)

    http://www.example.com/api/gettoken?code={code}
  3. 使用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就会失效。

  4. 使用令牌访问用户隐私数据

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


说明:业务系统-客户端 账号模块下,已新增 "应用授权管理"功能,可以让客户自主设置授权应用(启用/禁用)、设置过期时间 跳转到操作流程说明