simple-oauth2 在令牌刷新时抛出“内容类型与 JSON 不兼容”

问题描述 投票:0回答:1

我在此示例中使用 simple-oauth2 来查询 Microsoft Graph。到目前为止一切运作良好。但是当我尝试刷新访问令牌

var newToken = await storedToken.refresh();
时,我收到错误:

内容类型与 JSON 不兼容

这是在

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

node.js oauth-2.0 microsoft-graph-api simple-oauth2
1个回答
2
投票

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

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.URL

OAUTH_AUTHORITY
OAUTH_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
是相对的。我还没弄清楚为什么它对授权有效,但仍然有效。

© www.soinside.com 2019 - 2024. All rights reserved.