1Panel-dev / 1Panel-dev/1Panel
[Bug] Misleading Error Message After Feishu/DingTalk Authentication Callback
@wanghe-fit2cloud is already working on this.
Since Sep 17, 2026.
- Dominant language
- Go
- Stars
- 37k
- Forks
- 3.4k
- Avg merge
- 9h 16m
- Merged PRs (30d)
- 105
Description
Contact Information
No response
1Panel Version
- 1Panel AI 网关 v1.1.0(BUILD_TIME 2026-09-14T10:46, GIT_COMMIT 0d1e2f5) - 部署方式:1Panel 应用商店安装(Docker),前置 Cloudflare Tunnel 提供 HTTPS 公网域名
Problem Description
配置飞书企业登录,测试连接 显示「平台应用凭据验证成功」,但真实登录流程走完后
浏览器落在 /unavailable,前端提示:
企业身份验证失败,请检查账号信息后重试
msg="enterprise authentication failed" endpoint=/api/v1/auth/enterprise/complete operation=complete provider="" status=401 error_class=enterprise_auth_expired stage=completion reason=browser_cookie_missing err="completion: **browser_cookie_missing"
已排除的配置问题
- 飞书应用:已启用 / 正式应用 / 当前修改均已发布
- 重定向 URL 与网关
redirectUri完全一致:https://<域名>/auth/enterprise/callback - 网关保存的 clientId / tenantId / redirectUri 三者互相一致,
/start返回的 authorizationUrl 正确 - 网关容器健康、Tunnel 链路正常(
/api/v1/auth/enterprise/providers正常返回)
实测的 Set-Cookie
POST /api/v1/auth/enterprise/feishu/start → 200 ai_gateway_enterprise=…; Path=/api/v1/auth/enterprise/; Max-Age=300; HttpOnly; SameSite=Lax GET /api/v1/auth/csrf → 204 ai_gateway_csrf=…; Path=/; SameSite=Strict
Steps to Reproduce
我认为需要改的两点
-
Max-Age=300对第三方登录过短。 飞书/钉钉登录常需要切到手机扫码,5 分钟内完不成就会失败,
而失败表现是"cookie 不存在",与"配置错误"无法区分。建议延长到 10 分钟以上,
或允许在回调页一键"重新发起授权"(复用已填参数)。 -
错误提示误导。
browser_cookie_missing/enterprise_auth_expired被前端统一渲染成
"请检查账号信息后重试",会把用户引向反复核对 clientId / secret / 回调地址,
而真实原因是超时。建议区分「state 过期」与「凭据错误」两种文案,
并在过期时直接给出"重新登录"按钮。
附带疑问(未确认,供参考)
ai_gateway_csrf 使用了 SameSite=Strict。它是否会在"从 IdP 跨站跳回后,
回调页发起的同源 POST"场景下不发送,我没有验证清楚,请维护者确认是否也需要改为 Lax。
复现步骤
- 部署 ai-gateway,前置 HTTPS 反代/隧道
- 系统设置 → 企业认证 → 飞书:填 clientId / tenantId / secret / 回调地址,启用并保存
- 点「测试连接」→ 提示成功
- 退出登录 → 登录页点「飞书」→ 完成授权
- 若授权耗时超过 5 分钟,稳定复现上述失败
The expected correct result
No response
Related log output
Additional Information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.