基于平台提供的账号体系,开发者可以实现自有App开发中的注册、登录、忘记密码、登出、修改用户信息等功能。

背景信息

当前支持两种账号体系:

  • 平台提供的内置账号体系

    内置账号体系适用于,如果开发者原来并没有自己的账号体系,或想重新搭建一套新的账号体系,可以使用内置账号体系方式。该账号体系,支持以手机号、邮箱作为账号,提供注册、登录、找回密码、修改用户信息等功能。

  • 对接开发者已有的自有账号体系

    自有账号体系适用于,开发者原来已有自己的账号体系,可以将自己的账号和平台账号做关联,即可实现设备绑定关系、设备分享、设备消息推送等功能。该账号体系,需要与您原有的账号体系做Oauth认证,您账户体系中的用户信息不会保留在平台上,可以更好地保留您的用户隐私信息。

内置账号体系

内置账号体系为平台提供的服务和能力,客户端集成平台账号SDK即可使用。账号SDK支持唤起登录页面,包括账号注册、登录、登出、忘记密码、多语言切换、修改头像、修改昵称、注销账号等功能,并支持在此页面基础上修改UI风格。

具体参见:

如果您的App发行到海外,建议您在海外版App中实现以下内容。

  • 邮箱注册:邮箱注册更符合海外用户使用习惯
  • 多语言切换:当前平台支持10种语言,后续将持续添加中
  • 注销账号:由于海外严格的合规要求(如GDPR),App中需要提供注销用户的功能,注销时需要删除用户所有数据

自有账号体系

自有账号体系,可基于Oauth2.0 API协议将您原有的账号体系对接到平台中,以实现设备绑定关系、设备分享、设备消息推送等功能。具体请按照以下方法进行配置和开发。

  1. 进入自有品牌App的用户账号配置页面。
  2. 选择自有账号体系,并单击配置

    配置自有账号参数
  3. 配置测试版自有账号体系,并单击确认保存。
    其中访问/刷新URLGetuserinfoURL需厂商提供前缀。
  4. 在测试版在开发环境中测试成功后,配置正式版。

自有账号对接流程

自有账号对接流程如下。


自有账号流程图
  1. 获取Authorization Code,此步骤由三方厂商直接下发。
  2. 通过Authorization Code获取Access Token(对应于上图第5步)。

    URL示例:https://third.com/oauth2.0/get_access_token,其中querystring根据厂商的配置信息自动拼接,请求方法为Post。

    请求示例

    https://test.net/api/users/oauth/token?grant_type=authorization_code&client_id=testxxx&client_secret=testxxxxx&code=test222224tD2fVtestNL3cVojFZL6&redirect_uri=none

    请求参数

    字段说明 类型 描述
    grant_type String 授权类型,固定为字符串 authorization_code
    client_id String appKey
    client_secret String appSecret
    code String 第三步返回的authCode

    如果成功返回,即可在返回包中获取到Access Token。返回参数如下。

    字段说明 类型 描述
    access_token String 授权令牌,Access_Token。
    expires_in String 该access token的有效期,单位为秒。
    refresh_token String 在授权自动续期步骤中,获取新的Access_Token时需要提供的参数。
    openid String 用户唯一标识
    result_code/message String 公共结果码和Message
  3. 刷新access_token(权限自动续期)。

    URL与获取AccessToken一致,但grant_type不同。

    URL示例:https://third.com/oauth2.0/get_access_token,其中querystring根据厂商的配置信息自动拼接,请求方法为Post。

    请求示例如下。

    https://test.net/api/users/oauth/token?grant_type=refresh_token&client_id=testxx&client_secret=test2222&refresh_token=test222testaaaL6

    请求参数

    字段说明 类型 描述
    grant_type String 授权类型,固定为字符串:refresh_token
    client_id String appKey
    client_secret String appSecret
    refresh_token String 获取accessToken返回的refresh_token

    返回参数

    字段说明 类型 描述
    access_token String 授权令牌,Access_Token。
    expires_in String 该access token的有效期,单位为秒。
    refresh_token String 在授权自动续期步骤中,获取新的Access_Token时需要提供的参数。
    result_code/message String 公共结果码和Message
  4. 通过access_token、openid获取用户信息(对应于上图第7步)。

    URL示例:https://thrid.com/sns/userinfo,请求方法为Post。

    请求示例

    https://testxx.net/api/users/oauth/userinfo?access_token=testaaaatest222a779537c6687c3&openid=cjtestwwd458test

    请求参数

    字段说明 类型 描述
    access_token String 第二步获取的access token
    openid String 用户唯一标识(非必填,如果需要支持Google Assistant和Amazon Alexa等语音对接能力,此处需要允许不传递该标识)

    返回字段如下。

    返回JSON数据:
    {
    "result_code": "0" 字符串
    "message": "成功",
    "openid":" OPENID", 字符串类型,必须
    "nick_name": NICKNAME, 字符串类型 必须
    "avatar_url": "image.com/xxxx.png" 可选
    "gender": "1" 1: 男 2:女 0:未知
    }

返回结果码

参见错误码字典

常见问题

参见账号的常见问题