【发布时间】:2020-05-07 11:28:10
【问题描述】:
节点:v12.16.1 Strapi:3.0.0-beta.20.1
我是strapi新手,一开始不得不说:我喜欢它!
除了 Angular 9 之外,我还想使用 Strapi,并且我想使用 Auth0 进行身份验证。
对于我的 Auth0 设置,我遵循了 Strapi 文档中的指南,并在用户权限插件中自定义了我的 permissons.js。 嗯!
我有一个非常令人困惑的问题。
当我从 Auth0 取回我的 access_token 时,我将其作为不记名身份验证令牌放入我的调用中,对 Strapi 端点的请求主要在第一次工作,有时可能是第二次和更多调用也,然后它失败了。如果我等待几秒钟然后它会再次工作,并且在成功调用后它也会再次失败。 (也用邮递员在我的角度应用程序之外进行测试 - 相同的行为) 如果我使用strapi jwt,它可以永久工作,与我的请求频率无关。
这几天让我很困惑。
如果失败,我从strapi 的回应是 无效令牌:错误部分中捕获的令牌与 Strapi 和 Auth0 不匹配。
如果它永远不起作用,我不得不说我做错了什么,但它有时会起作用,所以我会说我的方法在技术上是正确的。但我当然会做错事。
其他人是否有过使用 Auth0 和 Strapi 进行身份验证的类似问题,并理解我试图解释的内容?
这是我的 sn-p 代码(我想说完全是从 docu 复制的,有点个性化):
...
try {
const data = await axios({
method: 'post',
url: 'https://my.eu.auth0.com/userinfo',
headers: {
Authorization: ctx.request.header.authorization
}
});
console.debug('data from Auth0: ' + JSON.stringify(data.data));
// if you want do more validation test
// feel free to add your code here.
return await next();
} catch (error) {
return handleErrors(ctx, new Error('Invalid token: Token did not match with Strapi and Auth0'), 'unauthorized');
}
...
我希望有人遇到过类似的问题,并且知道如何解决这个问题。可能是 Auth0 的问题。
【问题讨论】:
-
错误来自Auth0,对吧?
-
也许吧。我想不通。我已经检查了 Auth0 中的日志。不起作用时没有条目。
-
如果我直接使用 Postman 调用 Auth0 资源,我会在几个(许多)调用后得到“请求过多”的响应。但这没关系,因为那时我可能会在几秒钟内发送 20 个请求来尝试一下。 :-)