多身份切换
教育号支持用户登录完成以后在多个不同的身份(角色)之间进行切换。
第三方应用应该优先根据不同的登录接入方式使用对应的前端身选择组件进行身份切换(而不是调用服务端接口)
通过前端组件切换身份
- 网页应用:网页应用切换用户登录身份
- H5应用:同网页应用
- 独立小程序:独立小程序切换用户登录身份
- 独立APP:独立APP切换用户登录身份
获取身份列表(已有身份登录态的状态下调用)
使用场景: 在已登陆,当前已处于某个身份的状态下,获取该账号的可登陆身份列表。
权限说明
| 权限项 | 说明 | 备注 |
|---|---|---|
| 应用是否需要申请白名单 | 否 | |
| 用户凭证 | 支持 | |
| 机构凭证 | 未支持 | - |
请求方式: GET(HTTPS)
请求地址: https://oapi.epaas.qq.com/open/user/get_login_roles?access_token=ACCESS_TOKEN
请求参数:
| 参数 | 必须 | 说明 |
|---|---|---|
| access_token | 是 | 调用接口凭证,使用用户凭证 |
返回参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | int | 返回码 |
| errmsg | string | 对返回码的文本描述内容 |
| posts | int数组 | 岗位列表 参考岗位 |
| duties | int数组 | 职务列表 参考职务 |
| admin_types | int数组 | 管理员类型列表 参考管理员类型 |
| role_infos | object | 身份列表 |
| role_infos.is_current_org | bool | 是否当前机构 |
| role_infos.corpid | int | 机构id |
| role_infos.corp_name | string | 机构名称 |
| role_infos.role_id | int | 角色id |
| role_infos.user_name | string | 用户名 |
| role_infos.child_id | int | 孩子id |
| role_infos.userid | string | 用户id |
| role_infos.org_type | int | 机构类型 |
| role_infos.user_expired_type | int | 过期类型 参考用户过期状态 |
返回示例:
{
"errmsg": "ok",
"errcode": 0,
"role_infos": [
{
"is_current_org": true,
"corpid": 894251,
"corp_name": "测试jimmy2",
"role_id": 12,
"user_name": "易坚",
"child_id": 0,
"userid": "30013970",
"org_type": 4,
"user_expired_type": 0
},
{
"is_current_org": false,
"corpid": 894250,
"corp_name": "测试jimmy1",
"role_id": 12,
"user_name": "易坚",
"child_id": 0,
"userid": "30013969",
"org_type": 4,
"user_expired_type": 0
}
],
"posts": [
1,
2
],
"duties": [
1,
3,
4
],
"admin_types": [
42
]
}
切换身份(已有身份登录态的状态下调用)
使用场景: 在已登陆,当前处于某个身份的状态下,切换身份, 使用返回值里的新token
权限说明
| 权限项 | 说明 | 备注 |
|---|---|---|
| 应用是否需要申请白名单 | 是 | 申请方式:联系项目接口人申请 |
| 用户凭证 | 支持 | |
| 机构凭证 | 未支持 | - |
请求方式: GET(HTTPS)
请求地址: https://oapi.epaas.qq.com/open/user/switch_role_v2?access_token=ACCESS_TOKEN
请求参数:
| 参数 | 类型 | 必须 | 说明 |
|---|---|---|---|
| access_token | string | 是 | 调用接口凭证,使用用户凭证 |
| userid | string | 是 | 用户id |
| corpid | int | 是 | 机构id |
| role_id | int | 是 | 角色id 参考角色类型 |
| child_id | int | 否 | 角色为家长时,必填 |
| post | int | 否 | 岗位 参考岗位 |
| dutie | int | 否 | 职务 参考职务 |
| admin_type | int | 否 | 管理员类型 参考管理员类型 |
返回参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | int | 返回码 |
| errmsg | string | 对返回码的文本描述内容 |
| access_token | string | 新的token |
| expire_in | int | 有效时长(秒) |
返回示例:
{
"errmsg": "ok",
"errcode": 0,
"access_token": "user_1001_2h1tTbF5jEtMzA26QQ3gjVpnF78hNQV4qkyD.ISNPhMEbCqBKjpMfBODAAneqoOhvlyhY",
"expire_in": 7200
}