如何在axios上使用协商或Kerberos身份验证?

时间:2018-12-11 22:28:45

标签: javascript xmlhttprequest axios

在我的客户端Web代码中使用Axios,我可以使用Kerberos或“协商”身份验证发出XHR Web请求吗?我希望浏览器像通过链接或位置栏发出的普通请求一样,通过用户提示或对受信任URI的单点登录来提供用户的SPNEGO令牌。

我看到的一切都是这样的示例:

axios.get(url, {
  withCredentials: true,
  auth: {
    username: '...',
    password: '...'
  }
}

但这似乎可以尝试基本身份验证。我想在不提供用户名或密码的情况下进行Kerberos。这可能吗?

还是我在想这个错误?

1 个答案:

答案 0 :(得分:1)

如示例所示,在任何请求下,如果withCredentials选项设置为true,Axios或更准确地说是浏览器都将在“ Authorization”标头中自动添加Negotiate SPNEGO令牌。不需要auth选项。

如果这是带有预检的CORS请求的一部分,则如有必要,浏览器将自动发送OPTIONS请求,不使用任何授权标头。 Axios并没有做(或需要做)来启用此行为。

axios.get(url, { withCredentials: true })