我将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,在服务器上对其进行验证,然后在他/她有效的情况下执行该操作。
答案 0 :(得分:0)
如果您有令牌,那么对于每项服务,您都必须在标头中将其与密钥授权一起提供。 在服务器上,此令牌将被验证。 阅读更多How to add Authorization Header to Angular http request?。 在这个用于正常JavaScript的Angular框架中,您必须在ajax调用中提供它。