Auth0找不到身份验证令牌

时间:2019-11-09 19:08:19

标签: javascript node.js authentication oauth-2.0 auth0

我将Angular和Node.js与Auth0一起使用进行登录。我使用快速入门指南来启动API。这是我使用Auth0 API的后端。

var jwtCheck = jwt({
    secret: jwks.expressJwtSecret({
        cache: true,
        rateLimit: true,
        jwksRequestsPerMinute: 5,
        jwksUri: 'https://xxxx.auth0.com/.well-known/jwks.json'
  }),
  audience: 'http://localhost:3002',
  issuer: 'https://xxxx.auth0.com/',
  algorithms: ['RS256']
});

app.get('/authorized', function (req, res) {
    res.send('Secured Resource');
});

使用Auth0通用登录名登录后,然后尝试访问我的后端并查看是否获得授权。

这是检查我是否被授权的代码。

  tempCheck() {
    this.http.get("http://localhost:3002/authorized").subscribe(data => {
      console.log(data);
    });
  }

注意,我没有传递任何内容(我想我需要传递,但是Auth0指南没有告诉我)。

在检查我是否获得授权后,我收到错误消息,未找到身份验证令牌。不知道我在这里做什么。后端连接不正确吗?

此处的想法是使用Auth0登录。然后,无论何时我想对数据库执行CRUD操作,我都想先使用后端验证用户,然后再执行CRUD操作。

任何帮助将不胜感激。


更新:我经历了测试,这对我来说更有意义。因此,当我启动服务器以使用Auth0时。我必须获取令牌并将其与Auth0结合使用。我以某种方式使用Auth0进行验证,以使服务器能够使用Auth0。

现在我的服务器已经过验证。

然后,当用户想要执行CRUD操作时,我发送其唯一的Auth0 ID,在服务器上对其进行验证,然后在他/她有效的情况下执行该操作。

1 个答案:

答案 0 :(得分:0)

如果您有令牌,那么对于每项服务,您都必须在标头中将其与密钥授权一起提供。 在服务器上,此令牌将被验证。 阅读更多How to add Authorization Header to Angular http request?。 在这个用于正常JavaScript的Angular框架中,您必须在ajax调用中提供它。