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