Sails.JS - 重试 NTLM 身份验证失败?

Sails.JS - retry on NTLM Auth failure?

我目前正在编写一个基于 Sails.JS 的 NodeJS 应用程序,我正在使用 ntlm-express 进行 NTLM 身份验证。这在身份验证成功时工作得很好但在失败的情况下(例如,Firefox 用户输入错误的凭据)ntlm-express returns 500 错误代码,FireFox 将凭据存储在其缓存中并且用户无法根本无法登录 Web 应用程序,因为他没有收到输入凭据的新提示。用户登录的唯一方法是手动清除 FireFox 中的身份验证缓存并重试。

我想做的是在 ntlm-express 无法验证用户身份的情况下,再次提示他输入凭据而不是返回 500。

有没有人做过这样的事情并且可以指出正确的方向?我在网上发现关于这个主题的信息很少...

对于遇到类似问题的任何人,我设法通过将 express-ntlm forbidden 函数覆盖为 return 401 而不是 500 并编辑默认的 Sails unauthorized.js 回应也 return 一个 "WWW-Authenticate: NTLM" header。 这样我就迫使客户重试 NTLM 协商,直到他做对为止...