"记住我的密码"复选框如何工作?

Vee*_*era 32 html passwords cookies

有许多登录表单,带有"记住我的密码"复选框,以便下次访问网站时,浏览器会自动为您填写密码字段.

但我注意到现代浏览器中的一种行为,例如Chrome/Firefox,它会显示一个通知栏来保存用户名/密码,即使该特定网页没有任何"记住密码"复选框.

所以我的问题是:

  1. 如果我必须在登录表单中输入"记住密码"复选框,用户检查时我该怎么办?我的意思是,我是否必须将密码存储在浏览器cookie(或本地存储)中?如果是这样,密码应加密还是纯文本?
  2. "保存密码"通知栏是浏览器的功能,还是有任何方法可以从网页调用它?

mu *_*ort 75

"保存密码"部分来自浏览器的密码管理器,只要它看到<input type="password">它真的要求输入密码.您可以使用autocomplete属性在大多数浏览器中禁止此操作:

<input type="password" name="password" autocomplete="off">
Run Code Online (Sandbox Code Playgroud)

这不会验证,但通常无关紧要.

"记住我"部分与浏览器的密码管理器完全分开."记住我"标志是服务器的业务,它所做的就是摆脱它发回的cookie的到期日期.服务器将始终发送一个cookie(除非他们没有使用cookie来跟踪会话,但这很少见,并且不需要"记住我"),里面有一些东西来识别客户端用户.

如果你检查"记住我",那么你告诉服务器你想要一个持久的会话.为实现此目的,服务器将包含cookie的到期日期,并且到期日期将是未来的某个时间.当日期到来时,浏览器将过期并删除co​​okie; 没有cookie,服务器将不再知道你是谁,你将不得不再次登录.

如果您没有选中"记住我",那么您将获得一个会话cookie.会话cookie没有到期日期,因此当浏览器退出时自动过期.会话cookie对共享计算机很有用.

执行摘要:

  • "保存密码"来自浏览器的密码管理器.
  • "记住我"是关于登录cookie的到期时间.

很抱歉这么长时间的啰嗦,但其他答案似乎有些混乱和缺乏清晰度.

  • 是!作为一名Web开发人员已有10年了,而这恰好使我感到烦恼,直到会话cookie和显式过期的cookie为止。https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies#Session_cookies谢谢! (2认同)