【问题标题】:simple-oauth2 throws "The content-type is not JSON compatible" on token refreshsimple-oauth2 在令牌刷新时抛出“内容类型与 JSON 不兼容”
【发布时间】:2019-12-31 00:52:28
【问题描述】:

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

内容类型与 JSON 不兼容

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

【问题讨论】:

标签: node.js oauth-2.0 microsoft-graph-api simple-oauth2


【解决方案1】:

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

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 是相对的。我不明白为什么它对授权有效,但仍然有效。

【讨论】:

    猜你喜欢
    • 2020-02-22
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多