【问题标题】:Redirection not working on Safari and Firefox重定向在 Safari 和 Firefox 上不起作用
【发布时间】:2019-01-10 14:49:54
【问题描述】:

我正在使用 express-ntlm 在我的应用程序上对我的用户进行身份验证。对于 Mac OS,浏览器要求输入用户名和密码,当用户输入错误密码时,它会显示一个带有禁止消息的页面。我在我的自定义库上覆盖了forbidden 函数,以便我可以将用户重定向到当前 URL,以便他们可以再次插入用户名和密码。出于某种原因,这适用于 Chrome,但不适用于 Firefox 或 Safari,它只是不断刷新页面,但不会提示用户输入用户名和密码。看起来浏览器正在存储失败的登录尝试,并且不允许您重试。

forbidden: function(req,res){
    res
      .status(401)
      .send(`<!DOCTYPE html><html><head><body>
      <h2>Login failed, Please try again.</h2></body></head>
      <script>
      window.setTimeout(function() {
        window.location.href = '${req.url}';
      }, 1000);
      </script></html>`)
  }

【问题讨论】:

    标签: javascript firefox safari ntlm express-ntlm


    【解决方案1】:

    NTLM 仅在您将其用于 SSO(无需手动输入凭据)时才有意义。

    在您的情况下,我建议您创建自己的用户名/密码表单,然后使用一些 Active Directory / LDAP 模块对域控制器进行身份验证。如果成功,用户将登录,否则显示错误,用户可以重试。

    如果出现支持 NTLM 的浏览器(例如 IE),您也可以将它们组合并使用 express-ntlm,否则会显示登录表单。在我看来,这将为您的用户带来最大的好处和最佳的用户体验。

    【讨论】:

      猜你喜欢
      • 2014-10-12
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2018-10-01
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多