为了更好的保护用户的隐私,提高平台安全性,降低用户信息泄露或的风险,1号店开放平台将于6月30号之后开始新的oauth机制,请各位予以配合

主要影响的是在线销售的服务,请自行检查下,服务(即appkey)的类型,检查方式如下,使用appkey对应的服务商账号登陆open.yhd.com,查看应用列表,找到对应的记录,查看应用类型,“卖家应用/在线订购应用”、“ 供应商应用/在线订购应用”,这两种的请关注下下列内容。

   6月30号之后,accessToken(sessionkey)的有效期将缩短为一天,举例说明,用户A在平台购买了服务商B的服务X,订购时间为一个月,用户A授权服务X访问自己的信息,即获取到 accessToken,该accessToken的有效期是一天(授权时间点+1天),1天后该accessToken将失效,需要用户A再次登录授 权,获取新一天的使用权限。用户A反映,“我每天登录授权,好麻烦啊,我信任服务X,怎么让我在订购有效期内使用该软件服务X,不用再用1号店商家登录 啊?”。接下来是服务商B要准备做的改造,使用refreshToken来延长用户A使用该服务X的使用期限。

  https://member.yhd.com/login/token.do接口新增返回

参数名

类型

说明

accessToken

String

 

refreshToken

String

 

expiresIn

Number

Access token到期时间,以毫秒计算(new Date()).getTime()

如果为空

refreshExpiresIn

Number

refresh token到期时间,以毫秒计算(new Date()).getTime()

userId

 

 

nickName

 

 

userCode

 

 

userType

 

 

merchantId

 

 

supplierId

 

 

isvId

 

 

新增刷新接口

https://member.yhd.com/login/refreshToken.do

请求参数:

参数名

参数选项

参数值

参数解释

client_id

必选

 

 

client_secret

必选

 

 

grant_type

必选

refresh_token

 

refresh_token

必选

 

 

scope

可选

 

 

state

可选

 

 

view

可选

 

 

 

返回参数:

参数名

类型

说明

accessToken

String

 

refreshToken

String

 

expiresIn

Number

Access token到期时间,以毫秒计算(new Date()).getTime()

 

messageCode

String

成功“success”;其他都视为失败

message

 

 

refreshExpiresIn

 

 

messageCode可能出现的值:

 

messageCode返回值

说明

 

 

success

成功

 

 

refreshtoken _empty

refreshtoken为空

 

 

refreshtoken_expire

刷新token失效

 

 

refreshtoken_not_exist

刷新token不存在

 

 

clientid_not_exist

clientid不存在

 

 

clientid_empty

clientid为空

 

 

clientsecret_empty

clientsecret 为空

 

 

clientsecret _not_exist

clientsecret不存在

 

 

application_not_exist

client_id(即appkey)对应的应用不存在

 

 

accesstoken_not_found

对应的accessToken不存在,请确认该用户是否订购或者授权了该应用

 

 

other_error

失败,系统内部错误,请稍后再试

 

 

按照上面的例子,服务商B需要做的事情是:

  1. 1.记录下refreshToken
  2. 2.在accessToken过期之前,使用刷新接口延长accessToken的时间和换取新的accessToken。(每天允许刷新五次, accessToken延长规则为刷新时间+1天,建议每天定时刷新)
  3. 3.如果refreshToken过期,请通知商家A重新授权,换取新的refreshToken+accessToken
  4. 4.所有的过期时间(accessToken&refreshToken的过期时间)不会超过用户订购的服务周期

 

延续上面的举例

  1. 1.如果用户A,修改了密码,对应的所有的有效accessToken&refreshToken将全部失效,需要用户A重新登录授权(即oauth2.0)
  2. 2.如果refreshToken过期了,并还在服务X的服务周期内,需要用户A重新登录授权(即oauth2.0)
  3. 3.服务X的服务周期过期,需要用户A下单订购,并在此登录授权(即oauth2.0)

提示

关闭