用户账号开发指南
更新时间:2019-07-25 00:51:20
概览
基于平台提供的账号体系,开发者可以实现自有APP开发中的注册、登录、忘记密码、登出、修改用户信息等功能。
当前支持两种账号体系:
- 平台提供的内置账号体系
对接开发者已有的自有账号体系
内置账号体系:适用于,如果开发者原来并没有自己的账号体系,或想重新搭建一套新的账号体系,可以使用该“内置账号体系”方式。该账号体系,支持以手机号、邮箱作为账号,提供注册、登录、找回密码、修改用户信息等功能。
自有账号体系:适用于,开发者原来已有自己的账号体系,可以将自己的账号和平台账号做关联,即可实现设备绑定关系、设备分享、设备消息推送等功能。该账号体系,通过和您原有的账号做Oauth认证进行关联,您的用户信息不会保留在平台上,可以更好地保留您已有的用户隐私信息。
开发指南
内置账号体系
内置账号体系为平台提供的服务和能力,客户端集成平台账号SDK即可使用。账号SDK支持唤起登录页面,包括账号注册、登录、登出、忘记密码、多语言切换、修改头像、修改昵称、注销账号等功能,并支持在此页面基础上做UI风格的修改。
具体查看:
iOS 账号及用户SDK
Android 账号及用户SDK
提醒:
如果您的APP发行到海外,建议您在海外版APP中实现:
邮箱注册:邮箱注册更符合海外用户使用习惯
多语言切换:当前平台支持10种语言,后续将持续添加中
注销账号:由于海外严格的合规要求,如GDPR,APP中需要提供注销用户的功能,注销时需要删除用户所有数据
自有账号体系
自有账号体系,可基于Oauth2.0 API协议将您原有的账号体系对接到平台中,以实现设备绑定关系、设备分享、设备消息推送等功能。具体请按照以下方法进行配置和开发:
控制台配置
步骤1:在开发环境选择需使用自有账号的应用,选择自有账号对接
步骤2:完成自有账号对接的相关参数配置并确认保存,其中访问/刷新URL和 GetuserinfoURL 需厂商提供前缀,详细对接文档请参考下文
步骤3:在开发环境进行测试,若测试成功需再在生产环境配置一遍。
- 控制台配网完成后,需要在客户端集成SDK部分完成对接,需要传入OAuth的 authCode参数。
具体对接流程:
iOS 对接三方账号
Android对接三方账号
参考
自有账号对接流程说明
第一步
获取Authorization Code,此步骤由三方厂商直接下发。
第二步
1、通过Authorization Code获取Access Token (对应于上图第5步)
URL如:https://third.com/oauth2.0/get_access_token,querystring 根据厂商的配置信息自动拼接,注意字段名称需匹配。
请求方法:Post
请求示例
请求参数:
字段说明 | 类型 | 描述 |
---|---|---|
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 |
2、刷新access_token(权限自动续期)
URL与获取AccessToken一致,但grant_type不同。
URL如:https://third.com/oauth2.0/get_access_token,querystring根据厂商的配置信息自动拼接, 注意字段名称需匹配。
请求方法:Post
请求示例
请求参数:
字段说明 | 类型 | 描述 |
---|---|---|
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 |
第三步
通过access_token、openid获取用户信息(对应于上图第7步)
URL如:https://thrid.com/sns/userinfo
请求方法:Post
请求示例
请求参数:
字段说明 | 类型 | 描述 |
---|---|---|
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:未知
}
公共返回结果码约定
结果码 | 说明 |
---|---|
0 | 成功 |
100001 | AccessToken过期 |
100002 | 用code换取access token值失败 |
100003 | RefreshToken已过期或已失效 |
100004 | 用户改密或解除授权导致AccessToken失效 |
100005 | AccessToken非法 |
100006 | 无效的OpenId |
110000 | 系统通用错误(无法--列出其他所有错误,需联系三方ISV |
常见问题
查看 账号常见问题