Homebase OAuth 2.0 授权

优质
小牛编辑
145浏览
2023-12-01

1.1.1. 目录

1.1.2. HTTP 远程驱动 OAuth 2.0 接入

基本流程与 OAuth 类试;

OAuth 2.0 需要实现 3 个 command 接口

接口1. OAuth

输入参数

  • command {String} 方法名, OAuth
  • params {Object}
  • params.callbackURL {String} 授权回调 URL

输出

  • status {Number} 0 表示成功
  • data {String} 授权跳转 URL

Sample

{
  "command": "OAuth",
  "params": {
    "callbackURL": "http://s.rokidcdn.com/xxxxxx"
  }
}

返回结果,JSON格式

{
  "status": 0,
  "data": "http://my.driver.com/xxx?callbackurl=http%3A%2F%2Fs.rokidcdn.com%2Fxxxxxx"
}

接口2: OAuthGetToken

输入

  • command {String} 方法名 expiredTime
  • params {Object}
  • params.code {String}

输出

  • status {Number} 接口状态
  • data {Object}
  • data.userId 授权用户ID
  • data.userToken 授权token
  • data.refreshToken 刷新用的token
  • expiredTime {Number} 时间戳,单位秒, 与 expiresIn 二选一
  • expiresIn {Number} 时间戳,单位秒, 与 expiredTime 二选一
  • data.ext1 {String} 扩展字段
  • data.ext2 {String} 扩展字段
  • data.ext3 {String} 扩展字段
  • data.ext4 {String} 扩展字段
  • data.ext5 {String} 扩展字段

Sample

{
  "command": "OAuthGetToken",
  "params": {
    "code": "XXXXXXXXXX"
  }
}

返回结果,JSON格式

  • data { JSON }
{
  "status": 0,
  "data": {
    "userId": "XXXXXXXXXX",
    "userToken": "XXXXXXXXXX",
    "refreshToken": "XXXXXXXXXX",
    "expiresIn: 7200
  }
}

接口3: OAuthRefresh

输入 userAuth

  • params.code {String} 授权 code
  • data {Object}
  • userId 授权用户ID
  • userToken 授权token
  • refreshToken 刷新用的token
  • expiredTime {Number} 时间戳,单位秒, 与 expiresIn 二选一
  • expiresIn {Number} 时间戳,单位秒, 与 expiredTime 二选一
  • ext1 {String} 扩展字段
  • ext2 {String} 扩展字段
  • ext3 {String} 扩展字段
  • ext4 {String} 扩展字段
  • ext5 {String} 扩展字段

输出 userAuth

    • status {Number} 接口状态
    • data {Object}
    • data.userId 授权用户ID
    • data.userToken 授权token
    • data.refreshToken 刷新用的token
    • data.expiredTime {Number} 时间戳,单位秒
    • data.ext1 {String} 扩展字段
    • data.ext2 {String} 扩展字段
    • data.ext3 {String} 扩展字段
    • data.ext4 {String} 扩展字段
    • data.ext5 {String} 扩展字段

传入参数

{
  "command": "OAuthRefresh",
  "params": {
    "userId": "XXXXXXXXXX",
    "userToken": "XXXXXXXXXX",
    "refreshToken": "XXXXXXXXXX"
  }
}

返回结果,JSON格式

  • data { JSON }
{
  "status": 0,
  "data": {
    "userId": "XXXXXXXXXX",
    "userToken": "XXXXXXXXXX",
    "refreshToken": "XXXXXXXXXX",
    "expiresIn: 7200
  }
}