多身份切换
教育号支持用户登录完成以后在多个不同的身份(角色)之间进行切换。
第三方应用应该优先根据不同的登录接入方式使用对应的前端身选择组件进行身份切换(而不是调用服务端接口)
通过前端组件切换身份
- 网页应用:网页应用切换用户登录身份
- H5应用:同网页应用
- 独立小程序:独立小程序切换用户登录身份
- 独立APP:独立APP切换用户登录身份
获取身份列表(已有身份登录态的状态下调用)
使用场景: 在已登陆,当前已处于某个身份的状态下,获取该账号的可登陆身份列表。
权限说明
权限项 | 说明 | 备注 |
---|---|---|
应用是否需要申请白名单 | 否 | |
用户凭证 | 支持 | |
机构凭证 | 未支持 | - |
请求方式: GET(HTTPS)
请求地址: https://jz.hasmartedu.com/oapi/openlogin/user/get_all_roles?access_token=ACCESS_TOKEN
请求参数:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证,使用用户凭证 获取用户凭证 |
返回参数:
参数 | 类型 | 说明 |
---|---|---|
errcode | int | 返回码 |
errmsg | string | 对返回码的文本描述内容 |
users | object | 身份列表 |
users.corpid | string | 机构id |
users.org_name | string | 机构名字 |
users.org_type | int | 机构类型 参考机构类型 |
users.userid | string | 用户id |
users.name | string | 用户名称 |
users.role_id | int | 角色id, 参考角色类型 |
users.relation | string | 家长孩子关系,可能值为爸爸、妈妈、爷爷、奶奶、外公、外婆、家长 |
users.child_id | int | 孩子id |
users.child_name | string | 孩子名字 |
users.user_expired_type | int | 过期类型 参考用户过期状态 |
is_org_manager | bool | 是否为机构管理员(当应用打开了显示管理员开关时,学校与教育局的管理员会返回两条用户数据,一条该字段为true代表管理员,一条为false代表普通教职工) |
返回示例:
{
"errcode": 0,
"errmsg": "ok",
"status": 0,
"users": [
{
"child_id": 0,
"child_name": "",
"corpid": "xxx",
"name": "xx职工",
"org_name": "xx教育局",
"org_type": 2,
"relation": "",
"role_id": 2,
"role_name": "xx职工",
"user_expired_type": 0,
"userid": "128740845",
"is_org_manager": false
},
{
"child_id": 0,
"child_name": "",
"corpid": "1",
"name": "教师1",
"org_name": "测试学校",
"org_type": 4,
"relation": "",
"role_id": 12,
"role_name": "教师1",
"user_expired_type": 0,
"userid": "123",
"is_org_manager": false
},
{
"child_id": 123,
"child_name": "孩子名字",
"corpid": "123",
"name": "xx家长",
"org_name": "测试学校",
"org_type": 4,
"relation": "",
"role_id": 13,
"role_name": "xx的家长",
"user_expired_type": 0,
"userid": "128726938",
"is_org_manager": false
}
]
}
获取用户切换角色的code
使用场景: 用户切换角色时,获取对应的code。接口参数来源于接口"获取用户所有角色"
请求地址: https://jz.hasmartedu.com/oapi/openlogin/user/switch_role?access_token=ACCESS_TOKEN
请求方法: [ GET ]
请求参数:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证,使用用户态access_token,由/open/access_token获得 |
corpid | 是 | 切换的目标机构id |
userid | 是 | 切换的目标用户id |
role_id | 是 | 切换的目标角色id,参考角色类型 注意:如果要切换为学校的管理员role_id要传51 或者 role_id传12同时is_org_manager传true |
child_id | 否 | 仅家长角色是必填,表明切换到家长关联的某个孩子视角。 |
is_org_manager | 否 | 是否使用管理员角色 bool值传true或false。当应用显示管理员开关打开时,该字段生效,同时code里会带上是否管理员信息 |
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"code": "b8a938214e3af4d192291828bb36d42c"
}
参数说明:
参数 | 说明 |
---|---|
errcode | 返回码 |
errmsg | 对返回码的文本描述内容 |
code | 目标角色对应的code |