feishu-auth
feishu-auth 插件支持 飞书 OAuth 2.0 身份认证,作为客户端在访问上游资源前进行身份验证的机制。
启用该插件后,将实现 OAuth 2.0 授权码流程:用户被重定向到飞书完成身份认证,认证完成后携带授权码重定向回来。插件使用该授权码换取访问令牌、获取用户信息,并为后续请求维护会话状态。
当消费者成功通过身份认证后,插件会在请求中添加包含 base64 编码用户信息的 X-Userinfo 请求头,再将请求代理到上游服务。上游服务可据此区分用户并按需实现额外逻辑。
使用示例
在开始之前,请确保你已创建飞书应用并获取所需的凭证。
-
创建飞书应用。
- 进入 飞书开放平台。
- 在开发者后台中创建一个新应用。
- 将其配置为支持 OAuth 2.0 的网页应用。
-
在创建的应用中:
- 进入 凭证与基础信息,记录你的 app ID 和 app secret。
- 进入 安全设置,将重定向 URI 设置为与
auth_redirect_uri配置匹配的地址,例如http://192.168.2.102:9080/anything。 - 进入 权限与范围,添加获取用户信息所需的权限,例如
contact:user.base:readonly。
在路由上配置飞书认证
以下示例演示如何在路由上启用飞书认证。
创建路由并配置 feishu-auth 插件:
curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
-d '{
"id": "feishu-auth-route",
"uri": "/anything",
"plugins": {
"feishu-auth": {
"app_id": "cli_1234567890abcdef",
"app_secret": "replace-with-your-app-secret-here",
"secret": "strong-secret",
"auth_redirect_uri": "http://192.168.2.102:9080/anything",
"redirect_uri": "https://accounts.feishu.cn/open-apis/authen/v1/authorize?app_id=cli_xxxx&redirect_uri=http%3A%2F%2F192.168.2.102%3A9080%2Fanything&response_type=code&state=feishu"
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'
❶ 替换为你的 app ID。
❷ 替换为你的 app secret。
❸ 替换为你的 secret,应为一个随机字符串。
❹ 替换为你在飞书注册的 OAuth 回调重定向 URI。
❺ 根据你的应用信息更新 URI 查询参数。详见 构造授权链接。
在浏览器中访问该路由(例如 http://192.168.2.102:9080/anything),你应被重定向到飞书授权页面:

成功通过飞书认证后,你应在浏览器中看到上游服务返回的响应:
