【问题标题】:STRAPI: Using auth0 for API Authentication in Strapi works and works notSTRAPI:在 Strapi 中使用 auth0 进行 API 身份验证有效且无效
【发布时间】: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 个请求来尝试一下。 :-)

标签: auth0 strapi


【解决方案1】:

您必须更新 url: 'https://my.eu.auth0.com/userinfo' 将 my.eu 替换为您在 auth0 上的实际子域。

【讨论】:

    猜你喜欢
    • 2020-11-24
    • 2020-01-14
    • 1970-01-01
    • 2022-12-30
    • 1970-01-01
    • 2019-11-03
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多