跳转至

Sessions

用户通过内置界面或您的自定义界面在 Authany 登录后,Authany 会在您的 Authany 域名(例如 myproject.authanyid.com 或自定义域名)上用会话 Cookie 记住已登录的用户。同一项目下的所有应用都共享这个会话,这也是跨应用实现单点登录(SSO)的基础。

在 Authany 管理台 > 高级 > Session 中可以控制该会话的行为和过期时间。

说明

基于令牌的应用(使用 SDK 的 SPA 和原生应用)会用刷新令牌维护自己的会话,其生命周期在 管理台 > 应用 中按应用单独配置。详情参见 刷新令牌。将 SDK 配置为 isSSOEnabled: false 时会完全跳过共享会话 Cookie,参见 移动应用 / 网站的 SSO。

Session Behavior

会话行为决定用户关闭浏览器后,已登录的会话是否仍然有效。

  • 保持登录状态(Keep users signed in)(默认):会话 Cookie 为持久性 Cookie。用户重启浏览器后仍保持登录,直到会话根据下方的 会话过期 设置到期为止。
  • 关闭浏览器时结束会话(End session on browser close):用户关闭浏览器后会话 Cookie 即被清除,下次访问需要重新登录。适用于多人共用设备的场景,例如信息亭或公共终端。

注意

关闭浏览器时结束会话依赖浏览器清除会话 Cookie 的行为。开启了会话恢复功能的浏览器(例如 Chrome 的“继续之前的浏览”)重启后可能仍会保留会话 Cookie。不过服务器端的会话仍会按照会话过期设置到期。

Session Expiration

会话过期决定会话在用户必须重新登录之前能维持多长时间,无论会话行为设置为何都会生效。

  • 最长会话时长(Maximum session lifetime):即使用户一直保持活跃,会话在到期前最长能维持的时间。默认值为 31449600 秒(52 周)。到期后,用户需要对共享该会话的所有应用重新登录。
  • 闲置后过期(Expire after idling) 与 闲置超时时间(Idle timeout):启用后(默认已启用),用户闲置时间超过设定的闲置超时时间,会话就会过期。默认值为 2592000 秒(30 天)。

例如,最长会话时长为 52 周、闲置超时时间为 30 天时,只要用户每月至少访问一次您的应用,就能保持登录状态长达一年;如果用户超过 30 天未访问,则需要重新登录。

Configure with authgear.yaml

如果您自建部署 Authany,也可以在 authgear.yaml 的 session 键下配置相同的设置:

session:
  # End session on browser close. Default is false (keep users signed in).
  use_session_cookie: false
  # Maximum session lifetime in seconds. Default is 31449600 (52 weeks).
  lifetime_seconds: 31449600
  # Whether the session expires after idling. Default is true.
  idle_timeout_enabled: true
  # Idle timeout in seconds. Default is 2592000 (30 days).
  idle_timeout_seconds: 2592000