飞书 SSO 中心服务

这是一个公共的 SSO 服务节点。业务站点只需要传入完整的 redirect_url,系统会自动解析出站点根地址,并固定回调到该站点的 /sso_callback

站点接入说明

  • 业务站点发起登录时,请跳转到:/auth/login_ssl?redirect_url=your_redirect_url&timestamp=unix_ts&signature=hex_hmac_sha256
  • 业务站点建议先调用:/auth/check_is_login?redirect_url=your_redirect_url&timestamp=unix_ts&signature=hex_hmac_sha256
  • check_is_login 会校验时间戳和签名;如果 SSO 当前已登录,会直接返回对应用户信息,业务站点可直接更新本地登录态。
  • 如果 check_is_login 返回 data.user = null,说明 SSO 当前未登录,此时再跳转到 /auth/login_ssl 进行飞书登录。
  • 签名规则:hex(hmac_sha256(SSO_SIGNATURE_SECRET, timestamp + "\n" + redirect_url))
  • SSO 中心会从 redirect_url 解析出 domain_url,例如 https://respondstat.365d4u.com
  • 固定回调地址为:domain_url + /sso_callback
  • 业务站点需提供固定的 /sso_callback,用于接收 SSO 回传结果。
  • 回传成功时,SSO 中心会向 /sso_callback 发送表单 POST,data 里包含 user 和原始 redirect_url
  • 业务站点收到成功结果后,应先保存本站登录态,再跳转到 data.redirect_url
  • 业务站点退出时,请使用 POST /auth/logout,并传入 redirect_url
  • 白名单只需配置 domain_url,不需要配置后面的 path。

本地测试示例

当前测试 redirect_url:

https://sso.365d4u.com/test-result

对应固定回调地址:

https://sso.365d4u.com/sso_callback

当前白名单 domain_url:

http://127.0.0.1:5000
http://127.0.0.1:8079
http://host365d.local
https://msg.365d4u.com
https://newsystem.365d4u.com
https://newsystemtest.365d4u.com
https://respondstat.365d4u.com
https://sso.365d4u.com
https://test.365d4u.com
https://www.365d4u.com

当前 session_life_limit:

7200 秒