如何告诉浏览器不要保存错误的密码?

16
通常在网站上,如果我错误地输入了密码,就会返回一个指示凭据错误的页面,但是 Chrome(或其他浏览器)会提示“是否要记住此密码?” 是否有办法向浏览器暗示现在不是询问的时候,只有在用户输入正确密码时才提示?

4
请注意,网站不应该说“您输入了错误的密码”。出于安全原因(和逻辑上的考虑),您应该仅声明“用户名或密码不正确”。 - DA.
看到这个标题,我就想:“这是一个很好的候选人可以迁移到[ux.se]。” - user1228
2个回答

8
你可以使用JQuery和Ajax将登录表单提交到服务器并接收响应,而无需重新加载页面,从而完全避免此问题。

编辑

类似于以下内容(未经测试):

<div id="error"></div>
<form id="loginForm" method="post">
  <input type="username" name="username" id="username">
  <input type="password" name="password" id="password">
  <input type="submit" value="Login">
</form>

<script>
  $(function(){
   $('#loginForm').submit(function(){
     // Ajax to check username/pass
    $.ajax({
      type: "POST"
    , url: "/login"
    , data: {
        username: $('#username').val()
      , password: $('#password').val()
      }
    , success: function(response) {
        if(response == 'OK'){
          $('#loginForm').submit()
        } else {
          $('#error').html('Invalid username or password')
        }
      }
   })
  })
</script>

1
那样的话,我不是就会失去正确密码的提示吗? - izb
但是浏览器是否仍然会要求您记住它? - DA.
1
一旦确认正确密码,您就可以按照正常方式提交实际表单。 - Pastor Bones
啊哈!很整洁。你能把它加入答案中吗?听起来很不错。 - izb
你可能需要添加一行 event.preventDefault(); 并将 .submit(function(){ 更改为 .submit(function(event){,以便表单不会提交除非您明确告诉它。 - dragonfire

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接