XHR指定withCredentials时,将发送什么凭证?

时间:2019-03-26 19:33:35

标签: oauth

我有一个OAuth客户端,该客户端正在成功检索访问令牌。 但是,当我发出XHR时,尽管指定了withCredentials:true,我仍然需要手动构造Authorization标头。 我假设OAuth客户端通常会将凭据写在浏览器可以访问并在后续请求中使用它们的地方,也许它没有这样做。如果是这样,那么我在这里会错过什么?有人可以在OAuth客户端中指向一些示例代码,该示例代码负责以某种方式使用withCredentials访问浏览器的方式存储令牌吗?

1 个答案:

答案 0 :(得分:0)

不,这是不正确的。

不幸的是,浏览器支持HTTP身份验证自1997年以来并没有真正取得进展,我们仍在手动添加授权标头,无法直接通过浏览器访问受OAuth2保护的端点,也无法退出浏览器chrome。

您需要自己添加标题。

withCredentials所控制的是自动发送Authorization标头到您已经登录的地方,但仅用于BasicDigest身份验证,它还可以控制发送cookie是否自动。

即插即用:我写了一个fetch()包装器,可以透明地添加标题:fetch-mw-oauth2。如果您不喜欢该项目,仍然可以查看该示例代码。