一、应用场景
第三方平台用户指代非物联云平台自主注册的C端App用户。物联云平台支持第三方平台用户直接跳转至平台中,而无需再次进行注册账号、输入账号密码进行登录等操作。
第三方平台分为主流第三方平台(微信、QQ、微博、支付宝、Facebook、Twitter)及通过物联云平台认证的第三方平台。非主流第三方平台需要根据物联云平台接口规范进行实现,并将已实现的接口URL地址配置在免登陆验证中。用户在第三方平台登录成功后,通过open_id、access_token在物联云平台请求登录。
用户在第三方平台登录后,可无感切换至物联云平台中继续进行操作。
用于第三方平台维护平台间统一的用户身份体系。
二、功能说明
客户可以在物联网平台的管理台【应用中心->集成->免验证登录】中,依据第三方平台认证接口规范进行实现。在免登陆验证中配置已实现的接口URL地址和token信息。依据第三方平台用户登录接口发送请求。
第三方平台用户首次登入,物联云平台会自动为其创建用户信息。并绑定第三方平台的open_id。物联云平台支持用户解绑第三方平台的open_id。
第三方平台用户登入后,物联云平台自动初始化其登录密码,每个第三方用户只能初始化一次密码。后续按照忘记密码流程进行处理。
三、前提条件
1.依据物联云平台接口规范实现,并将接口URL地址和token配置在免登陆验证中。
2.第三方平台需要完成和物联云平台的用户登录对接。
3.目前仅支持微信用户、QQ用户、微博用户、支付宝用户、Twitter用户、Facebook用户。
四、关键流程
4.1 用户第三方认证
流程说明:
- 首先,管理员级B端成员 登录到 企业管理台 得到物联网中台成员级调用凭证和刷新凭证。
- 其次,管理员级B端成员 获得到物联云平台第三方平台的用户认证地址和用户认证凭证,向 物联网中台 发起 设置用户第三方认证配置 请求,进行认证校验配置。
- 再次,管理员级B端成员 向 物联网中台 发起 查询用户第三方认证配置 请求,得到用户第三方认证的配置确认是否配置正确。
- 接着,第三方C端用户 登录到 物联云平台标准第三方平台,获得第三方平台调用凭证以及第三方标识。
- 接着,第三方C端用户 依据第三方平台调用凭证以及第三方标识向物联网中台发起 第三方用户认证登录 请求。
- 最后,物联网中台接收到 第三方用户认证登录 请求后查找出对应的第三方平台校验地址和校验凭证,向物联云平台第三方平台发起 第三方调用凭证和第三方标识校验 请求,校验通过后为第三方C端用户颁发用户级调用凭证以及刷新凭证。
五、API列表
5.1 第三方认证设置
5.1.1 设置用户第三方认证配置
接口描述
当企业希望启用第三方认证登录时,需要登录到物联网企业管理台处设置第三方认证的认证回调地址,此接口正是用于配置每个企业的用户第三方认证的回调地址以及凭证。
请求方式
POST
请求地址
/v2/corp_setting
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Access-Token | true | String | 调用凭证 企业成员 |
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
user_auth_third | body | true | Object | 用户第三方认证配置 |
user_auth_third.url | body | true | String | 用户第三方认证地址 |
user_auth_third.token | body | true | String | 用户第三方认证凭证 |
请求示例:
{
"user_auth_third": {
"url": "http://www.xlink.cn",
"token": "456125145"
}
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
user_auth_third | true | Object | 用户第三方认证配置 |
user_auth_third.url | true | String | 用户第三方认证地址 |
user_auth_third.token | false | String | 用户第三方认证地址 |
返回示例:
{
"user_auth_third": {
"url": "http://www.xlink.cn",
"token": "456125145"
}
}
错误码:
错误码 | 描述 |
---|---|
40010001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
5.1.2 查询用户第三方认证配置
接口描述
查询企业下用户第三方认证配置信息。
请求方式
GET
请求地址
/v2/corp_setting
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Access-Token | true | String | 调用凭证 企业成员 |
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
—- | —- | —- | —- | —- |
请求示例:
{
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
user_auth_third | true | Object | 用户第三方认证配置 |
user_auth_third.url | true | String | 用户第三方认证地址 |
user_auth_third.token | false | String | 用户第三方认证地址 |
返回示例:
{
"user_auth_third": {
"url": "http://www.xlink.cn",
"token": "456125145"
}
}
错误码:
错误码 | 描述 |
---|---|
40010001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
5.2 第三方认证登录
5.1.2 第三方用户认证登录
接口描述
用户在通过了第三方平台登录成功后,通过第三方openId、accessToken在物联云平台请求登录,如果第三方用户不在物联云平台则直接创建一个用户,如果已在物联云平台则更新相关信息.
请求方式
POST
请求地址
/v2/user_auth_third
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
source | body | true | Int | 用户第三方源 10: 其他 |
plugin_id | body | false | String | 应用标识 |
open_id | body | true | String | 第三方用户标识 |
corp_id | body | true | String | 企业标识 |
access_token | body | true | String | 第三方调用凭证 |
name | body | false | String | 用户名称 |
resource | body | false | String | 用户登录源 |
请求示例:
{
"source": 4,
"corp_id": "1235aed1f1df222",
"open_id":"156s1fe6d123fef15d1d2",
"access_token":"1112sdfwefdsfafd212",
"name":"李清华",
"resource":"TEST",
"plugin_id":"131566efdfaew23"
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
user_id | true | String | 用户标识 |
access_token | true | String | 调用凭证 |
refresh_token | true | String | 刷新凭证 |
expire_in | true | Int | 调用凭证的有效期 |
authorize | true | String | 用户认证码 |
返回示例:
{
"user_id":112356456,
"access_token":"dsfs16we1d1fd23afew5fdf",
"refresh_token":"1561ewfd1s2fwe5fffdfdsfsdf",
"expire_in":7200,
"authorize":"dsfe1561d56fds1fe"
}
错误码:
错误码 | 描述 |
---|---|
4001001 | 请求数据字段验证不通过 |
4001002 | 请求数据必须字段不可为空 |
4031001 | 调用凭证权限被禁止访问 |
4031003 | 无效的调用凭证 |
4031002 | 需要调用凭证 |
4041001 | 接口不存在 |
5031001 | 系统错误 |
4031024 | 权限不足 |
4001482 | 第三方源未知 |
4041020 | 应用不存在 |
4041023 | 未设置第三方登录地址 |
4001059 | 第三方验证失败 |
5.3 外部系统实现接口标准
5.3.1 第三方调用凭证和第三方标识校验
接口描述
物联网中台企业设置了用户第三方认证配置后发起用户第三方认证登录,此时物联网中台会向外部系统发起第三方调用凭证和第三方标识校验 请求,用于确认第三方凭证和第三方标识的有效性。
第三方调用凭证和第三方标识校验: 需要符合以下规范,且由外部系统实现,其中请求地址可自定义,调用成功判断标准为HTTP响应状态码为200且返回对应的返回值。
请求方式
GET
请求地址
http://xxxx/xxx/xxx/xxx?access_token=xxxx?open_id=xxxx?timestamp=xxxx?sign=xxxx
请求头
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
Content-Type | true | String | application/json |
请求参数
名称 | 位置 | 必填 | 类型 | 备注 |
---|---|---|---|---|
access_token | body | true | String | 第三方认证登录时传输到物联平台的access_token |
open_id | body | true | String | 第三方认证登录时传输到物联平台的open_id |
timestamp | body | true | Long | 物联平台生成的时间戳 |
sign | body | true | String | 请求签名 1.签名算法:MD5(open_id+access_token+timestamp+sign_token) 2.sign_token为5.1.1 设置成员第三方认证配置中的token 3.外部系统接收到请求后,使用同样的签名方法得到签名与请求签名参数相比较以确认请求是否有效合法 |
请求示例:
{
}
返回参数说明
名称 | 必填 | 类型 | 备注 |
---|---|---|---|
open_id | false | String | 第三方用户标识 |
nickname | false | String | 昵称 |
sex | false | Int | 性别 1:男 2:女 -1:未知 |
country | false | String | 所在国家 |
province | false | String | 所在省份 |
city | false | String | 所在城市 |
phone | false | String | 手机号码 |
false | String | 邮箱地址 |
返回示例:
{
"open_id": "4541465ewfds23f1ds",
"nickname": "lily",
"sex": 2,
"country": "中国",
"province": "广东",
"city": "广州",
"phone": "13838383388",
"email": "liqinghua@xlink.cn"
}
错误码:
错误码 | 描述 |
---|---|
—- | —- |
六、物联云平台标准第三方平台
6.1 物联云平台标准第三方成员平台
第三方平台实现了 5.3.1 第三方调用凭证和第三方标识校验 标准的接口。
第三方平台将实现了 5.3.1 第三方调用凭证和第三方标识校验 标准的接口使用 5.1.1 设置用户第三方认证配置 配置在物联网中台。
至此,可以称第三方平台为 物联云平台标准第三方成员平台