gpt4 book ai didi

node.js - Auth0 "service not found"错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:55 24 4
gpt4 key购买 nike

我正在尝试使用 Auth0 颁发 JWT token 来访问我的 API(以便 Auth0 处理所有 OAuth 和安全问题等,而我的 API 只需要检查 token )。当我尝试测试客户端的授权代码流程以接收访问 token (使用 Node + Express)时,会发生以下情况:

  • 授权代码请求工作正常,客户端被重定向回我的redirect_uri,并将代码附加到查询中。一切都好。

  • token 请求总是失败。如果我包含 audience 参数,请求将返回 access_denied 错误,并包含以下详细信息:未找到服务:{audience 参数},无论我为 audience 参数设置什么值。

  • 如果我不包含 audience 参数,我会收到 server_error,并显示消息未找到服务:https://oauth.auth0.com/userinfo

我已经检查了每个 Auth0 设置并彻底阅读了每个文档页面,但到目前为止没有任何效果。我还在 Auth0 的 API 调试器中测试了授权代码流程,效果很好。我的测试遵循完全相同的参数,但仍然收到请求 token 的错误。我正在本地主机上进行测试。客户端凭据和隐式流程工作正常。

这是我创建的一个测试端点,它从 Auth0 检索授权代码:

const qs = require('querystring');

const getCode = (req, res) => {
const params = {
audience, // the value of the API Audience setting for the client
client_id, // the client ID
redirect_uri, // the redirect_uri, which is also listed in the Allowed Callback URLs field
response_type: `code`,
scope: `offline_access open` // ask to return ID token and refresh token,
state: `12345`,
};

const authDomain = `mydomain.auth0.com/oauth`;

res.redirect(`${authDomain}/oauth/authorize?${qs.stringify(params)}`);

};

然后,redirect_uri 重定向到以下端点,我在其中发出访问 token 请求:

const https = require('https');

const callback = (req, res) => {

const body = {
client_id,
client_secret,
code: req.query.code,
grant_type: `authorization_code`,
redirect_uri, // same value as provided during the code request
};

const opts = {
headers: { 'Content-Type': `application/json` },
hostname: `mydomain.auth0.com`,
method: `POST`,
path: `/oauth/token`,
};

const request = https.request(opts, response => {
let data = ``;
response.on(`data`, chunk => { data += chunk; });
response.on(`error`, res.send(err.message));
response.on(`end`, () => res.json(JSON.parse(data))); // this executes, but displays the error returned from Auth0
});

request.on(`error`, err => res.send(err.message));
request.end(JSON.stringify(body), `utf8`);

};

关于我可能做错了什么有什么建议吗?

最佳答案

问题是我在 Auth0 处调用了不正确的 URL。我错误地认为授权端点和 token 端点都以 /oauth 开头,而实际上授权端点只是 /authorize,而 token 端点是 /oauth/authorize。更正代码中的 URL 解决了问题。

关于node.js - Auth0 "service not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43433085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com