simple-oauth2 在令牌刷新时抛出 "The content-type is not JSON compatible"

simple-oauth2 throws "The content-type is not JSON compatible" on token refresh

我在 this example 中使用 simple-oauth2 来查询 Microsoft Graph。到目前为止一切正常。但是当我尝试刷新访问令牌 var newToken = await storedToken.refresh(); 时,出现错误:

The content-type is not JSON compatible

这是在 wreckindex.js 中抛出的,似乎 headers 中没有设置 content-type,而 mode 是设置为 strict。问题是,我不知道如何更改它或为什么会发生这种情况。它只发生在 refresh().

我认为这是配置问题。示例提供配置如下

OAUTH_AUTHORITY=https://login.microsoftonline.com/common
OAUTH_ID_METADATA=/v2.0/.well-known/openid-configuration
OAUTH_AUTHORIZE_ENDPOINT=/oauth2/v2.0/authorize
OAUTH_TOKEN_ENDPOINT=/oauth2/v2.0/token

wreck 使用 Url.URLOAUTH_AUTHORITYOAUTH_TOKEN_ENDPOINT 组合,结果是 https://login.microsoftonline.com/oauth2/v2.0/token,因此失去 common。这导致 404,因此不再有 JSON 响应。

我稍微更改了配置并从相对路径中删除了前导斜杠,并在基础 URL.

中添加了一个尾随斜杠
OAUTH_AUTHORITY=https://login.microsoftonline.com/common/
OAUTH_ID_METADATA=/v2.0/.well-known/openid-configuration
OAUTH_AUTHORIZE_ENDPOINT=oauth2/v2.0/authorize
OAUTH_TOKEN_ENDPOINT=oauth2/v2.0/token

所以OAUTH_TOKEN_ENDPOINT是相对的。我还没弄清楚为什么它对授权有效,但仍然有效。