在 Axios 中使用 NTLM 身份验证

Posted

技术标签:

【中文标题】在 Axios 中使用 NTLM 身份验证【英文标题】:Use NTLM authentication with Axios 【发布时间】:2019-01-06 23:05:32 【问题描述】:

我有一个使用 NTLM 身份验证的 WebApi,我正在尝试编写一个简单的 React UI 来从 API 获取数据但得到 401。

axios.get('url').then(response => console.log(response));

如何将我的 Windows 凭据与获取请求一起传递?

谢谢

【问题讨论】:

你有没有得到这个工作? 没有。在可以传递凭据的地方使用 fetch。 你用IE吗?还是铬?我有一个类似的问题,身份验证仅在 IE 中有效 :( 我的应用程序不适用于 IE。它是一个内网应用程序。它在 Chrome、Firefox 等上运行,使用 Fetch 而不是 Axios 如果它对任何人有帮助,我可以让它与邮递员一起工作,但我必须输入我的 Windows 凭据。 【参考方案1】:

Axios 应要求提供 withCredentials 属性。默认情况下为 false,将其设置为 true,您应该一切顺利。

Axios.get('url', 
withCredentials: true  )

【讨论】:

这适用于 GET,但不适用于 PUT。奇怪的是,我使用相同的 PUT 策略得到错误。我收到预检错误 (CORS) 和 net::ERR_FAILED 有人见过 GET 有效但 PUT 失败的情况吗?

以上是关于在 Axios 中使用 NTLM 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

ZAP 中的 NTLM 身份验证

使用 Windows Auth NTLM 进行身份验证

Python 中的 NTLM 身份验证

HTTP 请求未使用客户端身份验证方案“Ntlm”未经授权从服务器接收到的身份验证标头为“NTLM”

核心中的 NTLM 身份验证 HttpClient

在 .NET Core 的 Web 请求中使用 NTLM 身份验证