← [ BACK_TO_NOTES ]

记住账号与自动登录的实现边界

区分用于展示的本地账号记录与可撤销登录凭据,以及浏览器和桌面端的恢复登录边界。

#frontend #synthesis #growing #auth

记住账号与自动登录的实现边界

“记住账号”只保存登录页的显示提示;“记住我”或自动登录涉及恢复经过服务端验证的会话。两者不能用同一个本地文件是否存在来判断。

数据用途能否证明已登录
用户名、头像、上次使用的账号展示账号选择列表不能
服务端认可的 session / refresh 凭据恢复或续期登录必须重新验证有效性与账户状态
remember: true表达持久登录偏好不能

保存账号提示

登录成功后,可按用户选择保存最少的账号显示信息。打开登录界面时读取并预填,用户仍需认证。浏览器可使用适合该数据的本地存储;桌面端可使用应用数据文件或数据库。

这些数据可能泄露设备上使用过的账号,因此应提供删除入口;本地记录不应包含密码或被当作授权依据。

恢复登录

点击账号卡片只能发起恢复流程,不能直接信任卡片中的 user ID。服务端要验证凭据、过期、撤销及账户状态,成功后才建立当前身份。

  • 浏览器:可使用服务端 Session Cookie,或按架构使用短期 Access Token 与长期 Refresh Token。Cookie 凭据需考虑 HttpOnly、Secure、SameSite 与 CSRF,详见 cookie-session-token。
  • 桌面客户端:持久凭据应使用平台凭据存储能力,并隔离不同账号;普通 JSON 文件或本地数据库本身不提供安全保护。
  • 纯离线应用:本地解锁是另一种威胁模型,不能把“单机”直接等同于可以长期保存密码或无限期 token。

“把密码加密保存后自动提交”不是默认的记住我方案。Token 也不一定需要加密;关键是传输保护、凭据保密、校验与生命周期控制,签名 JWT 本身不隐藏载荷。

具体的刷新、并发、失败重试和撤销流程复用 token-auth-implementation-flow,不在本页复制协议。

退出与删除记录

退出应撤销当前会话或 refresh family,并清除客户端凭据。删除账号卡片只是删除显示记录;它不自动撤销服务器上的登录。已签发 Access Token 的即时失效也取决于验证架构。

检查场景

  • 只保留账号提示、删除登录凭据后,应要求重新认证。
  • 修改本地卡片的 user ID,不能切换到另一个用户的权限。
  • 会话过期或被撤销后,自动登录应收口到重新认证;网络暂时失败与明确撤销要区分。
  • 多账号切换不能复用上一账号的凭据和缓存身份。

[!info] related notes

创建于 2025/1/1 更新于 2026/10/6
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本