Skip to content

授权登录第三方应用 ​

使用海狸账号授权登录你的系统,在你的系统内获得当前用户的海狸身份,用户无需在你的系统中单独注册账号密码。

注意: 此能力用于第三方应用接入海狸身份。需先在开放平台门户创建应用。只能获取用户身份信息(昵称、头像等),不含企业组织信息。

获取 AppID 及 AppSecret ​

  1. 登录开放平台门户,创建应用
  2. 在应用凭证页查看 AppID、AppSecret

请妥善保管 AppSecret,仅放在服务端,不要写入前端公开代码。


获取授权码 code ​

换取 Token 前,需先让用户完成授权,拿到一次性 授权码 code。可通过 扫码登录 或 账号密码登录 获得。

注意: code 只能使用一次,请尽快换取 Token。

扫码登录 ​

生成二维码 ​

概述 ​
名称值
地址/api/open/oauth_public/v1/qrcode
请求方式POST
参数见【参数】
返回值见【返回值】
参数 ​
参数参数类型必须说明
appIdString是第三方应用 ID
返回值 ​
json
{
  "code": 0,
  "msg": "",
  "result": {
    "sceneId": "扫码场景 ID",
    "expireIn": 120
  }
}

将 sceneId 编码进二维码,由海狸 App 扫码确认。

轮询扫码状态 ​

概述 ​
名称值
地址/api/open/oauth_public/v1/qrcode_status
请求方式GET
参数见【参数】
返回值见【返回值】
参数 ​
参数参数类型必须说明
sceneIdString是扫码场景 ID(Query)
返回值 ​
json
{
  "code": 0,
  "msg": "",
  "result": {
    "status": "waiting",
    "code": ""
  }
}
status说明
waiting等待扫码
scanned已扫码,待确认
confirmed已确认,此时 code 有值
cancelled用户取消
expired已过期

status 为 confirmed 时,用返回的 code 换取 Token。

账号密码登录 ​

概述 ​
名称值
地址/api/open/oauth_public/v1/password_login
请求方式POST
参数见【参数】
返回值见【返回值】
参数 ​
参数参数类型必须说明
appIdString是第三方应用 ID
accountString是手机号或邮箱
passwordString是登录密码
返回值 ​
json
{
  "code": 0,
  "msg": "",
  "result": {
    "code": "授权码",
    "expireIn": 300
  }
}

获取用户的 access_token ​

host:{host}(替换为你的网关地址,路径以 /api/open/ 开头) ​

概述 ​

名称值
地址/api/open/oauth_secret/v1/token
请求方式POST
参数见【参数】
返回值见【返回值】

参数 ​

参数参数类型必须说明
appIdString是应用 ID
appSecretString是应用密钥
codeString是上一步获得的授权码
redirectUriString否回调地址,需与授权配置一致时使用
codeVerifierString否PKCE code_verifier

也可在请求头传递:App-Id、App-Secret。

返回值 ​

json
{
  "code": 0,
  "msg": "",
  "result": {
    "accessToken": "******",
    "refreshToken": "******",
    "expiresIn": 7200,
    "tokenType": "Bearer",
    "scope": "user.profile.read"
  }
}
字段说明
accessToken访问令牌
refreshToken刷新令牌
expiresInaccessToken 有效期(秒)

注意: accessToken 过期后请用 refreshToken 刷新;refreshToken 失效后需重新授权。


刷新用户的 refresh_token ​

host:{host} ​

概述 ​

名称值
地址/api/open/auth_public/v1/refresh
请求方式POST
参数见【参数】
返回值见【返回值】

参数 ​

参数参数类型必须说明
refreshTokenString是换取 Token 时返回的 refreshToken

返回值 ​

json
{
  "code": 0,
  "msg": "",
  "result": {
    "accessToken": "新的 accessToken",
    "refreshToken": "新的 refreshToken",
    "expiresIn": 7200
  }
}

获取授权用户的个人信息 ​

host:{host} ​

概述 ​

名称值
地址/api/open/user/v1/get_info
请求方式GET
参数见【参数】
返回值见【返回值】

参数 ​

参数参数类型必须说明
userIdString是要查询的 IM 用户 ID(Query)
AuthorizationString是Header:Bearer {accessToken}

返回值 ​

json
{
  "code": 0,
  "msg": "",
  "result": {
    "user": {
      "userId": "IM 用户 ID",
      "nickname": "用户昵称",
      "avatar": "头像 URL",
      "phone": "",
      "email": "邮箱"
    }
  }
}

Released under the Apache-2.0 License.