身份验证
优质
小牛编辑
140浏览
2023-12-01
身份验证
企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案:
- 企业应用中的URL链接直接填写企业自己的页面地址;
- 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成;
- 如果没有获取到cookie,重定向到OAuth验证链接,获取员工身份后,由企业生成代表员工身份的cookie;
- 根据cookie获取员工身份,进入企业开发的页面。
构造授权链接
请求地址: https://xpc.im.baidu.com/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI
参数说明:
参数 | 类型 | 参数位置 | 是否必须 | 说明 |
---|---|---|---|---|
appid | Integer | Url参数 | 是 | 企业CorpID,appid注意大小写 |
redirect_uri | String | Url参数 | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理,包含http/https前缀。例如http://localhost:8080/index.html |
功能说明:
授权链接在如流客户端打开后,页面将跳转至 REDIRECT_URI?code=CODE,开发者可根据CODE获得员工的userid,即员工的名称唯一标识。
获取访问用户身份
请求方式:GET(HTTPS)
请求地址:https://qy.im.baidu.com/api/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE&agentid=AGENTID
参数说明:
参数 | 类型 | 参数位置 | 是否必须 | 说明 |
---|---|---|---|---|
access_token | String | Url参数 | 是 | 调用接口凭证 参考获取access_token |
code | String | Url参数 | 是 | 参考上文,通过授权链接获取到的code,每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期 |
agentid | Integer | Url参数 | 是 | 企业当前开发的应用ID</br> |
权限要求:
access_token:确保获取的access_token具有对当前应用的管理权限。 即获取access_token的corpsecret参数来此自应用的管理组。
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"UserId": "zhoujielun"
}
参数 | 说明 |
---|---|
UserId | 成员UserID |
出错返回示例:
{
"errcode": 40029,
"errmsg": "invalid code"
}
完整步骤示例
- 获取某个应用的权限组访问access_token:
https://qy.im.baidu.com/api/gettoken?corpid=CORPID&corpsecret=SECRET
</br> 获取access_token
- 获取code参数:
https://xpc.im.baidu.com/oauth2/authorize?appid=CORPID&redirect_uri=http://localhost:8080/index.html
</br> 在如流客户端打开链接,code参数在重定向的url参数中。</br> 构造授权链接
- 获取userId:
https://qy.im.baidu.com/api/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE&agentid=59
</br> 获取访问用户身份