会话过期是产品提醒用户「你还在这里」的一种方式,只是大多数产品提醒得很粗暴。
一、一次「怎么又要我登录」
2026 年 5 月,一位用户连续发了三封工单,内容都是同一句:「怎么又要我登录?」林澈查了日志,发现对方每天用两个设备,会话有效期是 7 天,于是每周被踢出两次。
以下情境为教学假设,人物、引语和数字不代表经核实的真实案例。
他当时的想法很直接:会话越短越安全。但这条规则没有算过另一边的账——每次被踢出,用户要重新登录一次;登录失败或忘记密码,就会变成工单。
会话时长是一个三方的折中:安全、体验、支持成本。 只盯其中一项,另外两项一定会以别的方式回来找你。
有意思的是,那三封工单来自同一个人的三个账号——他为了给团队三个人开账号,自己在三个浏览器里来回切换,每次切换都要重登。这个细节说明:会话问题往往不是「一个人不高兴」,而是「一种用法被设置挡住了」。
二、三档会话的对照
他把同一批用户的设置分成三档试了一个月。三档的差异不在登录方式,只在「多久需要重新登录」。
| 会话时长 | 重登次数/人/月 | 会话类工单 | 工单率 | 主要风险 |
|---|---|---|---|---|
| 7 天 | 3.1 | 32 | 2.6% | 频繁打断,找回工单上升 |
| 30 天 | 1.4 | 14 | 1.1% | 折中 |
| 90 天 | 0.6 | 21 | 1.7% | 共享设备与疑似接管变多 |
7 天档的重登次数是 30 天档的 2.2 倍,工单是 2.3 倍。多出来的 18 张工单,几乎全是「我明明登录过」和「密码又不对了」。
这两句话看起来像抱怨,实际指向同一条链路:重登太频繁 → 用户记混密码 → 走找回 → 找回又要等邮件。7 天档多出来的不只是 18 张工单,还有一批悄悄走完找回、没有发工单的人;他们的成本藏在找回流程里,不在这张表上。
90 天档的重登次数最低,工单却反弹到 21 张。原因不在过期,而在共享设备:网吧、同事电脑、家里共用平板上留下的登录状态,被下一个人误用或误操作。
最短的会话不一定最安全。 频繁重登会让用户把密码写在便签上,或者干脆设一个更简单的密码;这类行为在日志里看不见,但它真实降低了安全性。
最长的会话也不一定最省事。 共享设备上的长会话带来的是另一类工单,处理起来比重新登录贵得多。
实验的做法是按用户分批,不是按时间切换。他把付费用户随机分成三组,各跑一个月;同一个人不能在两档之间来回跳,否则重登次数会被他自己的习惯污染。三组的人数不一致,所以工单量要做人均折算才能比较。
这也带来一个限制:三档各只有三四百人,单月工单 32 与 21 的差别,统计上只能算趋势,不能算精确效果。小样本的会话实验,结论要落在方向,不落在小数点。
三、1,736 次重登不是小事
30 天档下,每月 1,736 次重登。这个数字听起来只是「多点一次」,但它发生在什么时候很关键:多数重登发生在用户想做事的那一刻。
| 场景 | 占比 | 后果 |
|---|---|---|
| 打开产品就要用 | 58% | 直接打断任务 |
| 切换设备 | 27% | 可预期,可接受 |
| 清理浏览器后 | 11% | 用户不知道为什么 |
| 其他 | 4% | 多为共享设备 |
第一类占 58%,是最该优化的部分。用户不是忘了登录,是登录状态在他不知情的时候过期了;如果产品能提前一天提示「登录状态将于明天过期」,这部分打断可以大幅减少。
这个占比是他从重登事件的埋点里估出来的:重登前 10 秒内有交互、且同一个会话已经超过有效期,就归到「打开就要用」。这类判断有误差,但足以让他知道优化重点在哪一档——不需要精确到个位数。
重登的成本不在点击,在上下文丢失。 用户重新登录后回到首页,之前填到一半的表单、正在看的筛选条件都没了;这部分损失不会出现在任何指标里。
他的补救办法很土:登录后跳回原来的地址,而不是首页;表单内容在前端本地存一份草稿。两件事加起来不到一天,但把「重登」从「从头再来」降成「多点一次」。
这也说明会话时长不是越统一越好。编辑器、报表这类长任务页面,可以用「会话快过期时静默续期」;账号设置、支付这类敏感页面,反而要主动要求重新确认。
他把「过期前 24 小时提示」做成了一个不打断的横幅,只在对应用户下次打开时出现。上线后第一类重登从 58% 降到 41%,会话类工单从 14 张降到 9 张。
提示的文案也改过两版。第一版写「你的登录状态即将过期」,用户以为是系统故障;第二版写「为了安全,明天需要重新登录一次,点这里现在续期」,重登率才真正下降。同一件事,说法不同,接受度差很多。
四、退出所有设备与过期前提示
「退出所有设备」是一个小功能,但它承担了两个场景:用户怀疑账号被盗,以及用户换了设备。
| 指标 | 数值 | 说明 |
|---|---|---|
| 平均设备数 | 2.3 台 | 按 30 天内有登录的设备计 |
| 退出所有设备 | 77 次/月 | 占付费用户 6.2% |
| 其中伴随改密 | 29 次 | 37.7% 的用户同时改了密码 |
| 其中伴随工单 | 11 次 | 14.3% 的用户发工单确认 |
77 次里只有 11 次伴随工单,说明大多数用户能自己完成。但这个功能的位置很重要:放在「安全设置」里,用户找不到;放在「账号」页顶部,又会让人误以为要退出登录。
77 次还有一个隐含分母:它只统计付费用户里主动点了这个按钮的人。真正需要「退出所有设备」的用户,可能是被接管之后才发现,这时他更可能直接发工单问「我的账号是不是被盗了」。这个功能的价值不在使用量,在于它让怀疑有地方落地。
他的做法是分成两个动作:「退出当前设备」放在显眼位置,「退出所有设备」放在安全设置里,并在点击后要求确认一次。两个动作的名字必须区分清楚,否则用户会点错。
登出不是一个按钮,是一组动作。 退出当前设备、退出所有设备、退出并改密,三个动作对应三种意图;把它们合成一个,用户只能用猜的。
会话列表要能回答「这是不是我」。他列了四项:设备类型、浏览器、最近活跃时间、大致地点。不放 IP 全串,也不放精确坐标——用户看不懂,还可能被同住的人看到。地点精确到城市就够判断「这条不是我」。
列表里再加一个「不是我,退出这一个」。用户看到陌生设备时,最想要的是单条踢掉,而不是把所有设备都退了——后者会让他自己的手机也掉线,然后又要登录一次。
五、行动清单与复算验收
- 统计当前会话时长与每月重登次数。
- 把会话类工单从「其他」里拆出来单独计数。
- 按设备数分布判断,是否存在大量共享设备用户。
- 对比 7/30/90 三档的重登与工单,不要只测一档。
- 加过期前提示,位置要不打断当前任务。
- 区分「退出当前设备」与「退出所有设备」两个动作。
- 给「退出所有设备」加一次确认,并记录使用量。
- 每季度复测一次,会话策略会随用户结构变化。
验收标准:任取一次重登,都能说出它是正常过期、共享设备,还是用户主动退出。
前四条是「把三档账算出来」,后四条是「让用户能自己处理」。如果只有一小时,先做第二条:会话工单混在「其他」里,你永远不会知道它有多贵。
使用边界与实操验收
30 天不是标准答案。 金融、医疗类产品要更短,纯工具类可以更长;这里给的是一个人维护的协作产品的折中值。
会话策略要和设备管理一起看。 只调时长不看设备数,会把共享设备的问题误判成过期太短。
提示不能变成打扰。 过期前提示如果做成弹窗,会比直接过期更烦;它应该是页面内的一条静态信息。
「记住我」是一个独立开关。 默认 30 天、勾选后 90 天,比统一调长更合理;但要在界面上写清差别。
安全机制本身在另一组。 令牌签发、刷新、撤销的实现细节属于安全基线,这里只讨论时长与用户动作。
复算:
7 天:3.1 × 1,240 = 3,844 次重登;工单 32 → 32 ÷ 1,240 = 2.6%
30 天:1.4 × 1,240 = 1,736 次;工单 14 → 14 ÷ 1,240 = 1.1%
90 天:0.6 × 1,240 = 744 次;工单 21 → 21 ÷ 1,240 = 1.7%
7 天比 30 天多:32 − 14 = 18 张
18 × 7.5 分钟 = 135 分钟 = 2.25 小时/月
退出所有设备:77 ÷ 1,240 = 6.2%
其中伴随改密:29 ÷ 77 = 37.7%
其中伴随工单:11 ÷ 77 = 14.3%
复算里最该记住的是 2.25 小时:从 7 天改成 30 天,每月直接省下两小时多一点的支持时间,还不算用户被打断的损失。
关键参考与核验范围
- OWASP 会话管理速查表 :用于核对会话标识、超时与注销的要求。
- NIST SP 800-63B :用于核对会话与重认证的分级建议。
- OWASP 认证速查表 :用于核对登出与账号恢复的衔接。
以上链接于 2026-10-27 实测可公开访问;未核验版本、功能范围与政策更新。核验日期:2026-10-27。
范围上只讨论会话时长、重登与登出动作的用户侧设计,不讨论令牌存储、刷新机制与攻击面防护。
系列导航
- 上一篇:找回密码:一年 1,296 次、93.7% 成功率与一半的账号工单
- 下一篇:两步验证与恢复码:18.4% 的开启率、三起接管与四十四个人没存恢复码
- 回到目录:一个人的账号体系:一百零八张找回工单、三十天冷静期与 4.2% 的验证流失
- 相关阅读:一个人的安全基线:十四个入口、十七个密钥与一次 72 小时响应
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。