更多开发者文档,请访问飞书开放平台
概述
身份验证为应用 web 系统提供了获取正在访问飞书的用户身份的能力,便于应用 web 系统构建登录流程。
整体流程
第二步: 用户登录后,开放平台生成登录预授权码,302 跳转至重定向地址;
浏览器内网页登录
飞书客户端内,无需用户进行扫码登录或账号密码登录。
示例
1. 创建应用
2. 配置应用重定向 URL
在应用的“安全域名”配置中添加重定向 URL,例如 https://open.feishu.cn/document。重定向 URL 是应用在用户登录完成后利用用户登录预授权码获取用户身份的接口,若未配置或者配置不正确开放平台会提示请求非法。
3. 请求身份验证
注意:redirect_uri 参数需要经过 URLEncode 处理,例如:
企业未安装应用时,将有如下提示:
4. 获取登录预授权码
在上一步骤中,用户完成登录后(扫码登录或账号登录),开放平台会将 code 和 state 作为参数拼接在 redirect_uri 并重定向请求该地址,如下图所示:
5. 获取用户身份
本步骤在 Postman 上请求登录身份验证接口(详见获取登录用户身份),用 code 换取用户信息、access_token、refresh_token。请注意,code 有效期为5分钟,且只能使用一次。
请求 Body :
JSON:
{ "app_access_token":"a-32bd8551db2f081cbfd26293f27516390b9feb04", "grant_type":"authorization_code", "code":"xMSldislSkdK"}
返回 Body :
JSON:
{ "code": 0, "msg": "success", "data": { "access_token": "u-6U1SbDiM6XIH2DcTCPyeub", "avatar_url": "www.feishu.cn/avatar/icon", "avatar_thumb": "www.feishu.cn/avatar/icon_thumb", "avatar_middle": "www.feishu.cn/avatar/icon_middle", "avatar_big": "www.feishu.cn/avatar/icon_big", "expires_in": 7140, "name": "zhangsan", "en_name": "Three Zhang", "open_id": "ou-caecc734c2e3328a62489fe0648c4b98779515d3", "tenant_key": "736588c92lxf175d", "refresh_expires_in": 2591940, "refresh_token": "ur-t9HHgRCjMqGqIU9v05Zhos", "token_type": "Bearer" }}
6. 获取用户信息
上一步骤中将会返回用户 access_token 和 refresh_token,并有对应的有效时长字段返回。利用步骤 5 中获取的 access_token 获取用户信息(身份验证),敏感信息在获取企业授权后才返回。
7. 刷新 access_token
获取的 access_token 和 refresh_token 均存在有效期,前者有效期较短,后者较长。在 access_token 过期后,可根据 refresh_token 调用刷新 access_token 获取新的 access_token 和 refresh_token,新 access_token 和 refresh_token 有效期与初次生成的一致。若刷新失败,可在 2 小时内重试。