Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我应该使用中间件还是防护来通过Auth0和nestjs进行身份验证?_Node.js_Authentication_Middleware_Nestjs_Auth0 - Fatal编程技术网

Node.js 我应该使用中间件还是防护来通过Auth0和nestjs进行身份验证?

Node.js 我应该使用中间件还是防护来通过Auth0和nestjs进行身份验证?,node.js,authentication,middleware,nestjs,auth0,Node.js,Authentication,Middleware,Nestjs,Auth0,我陷入了一个难题 我开始使用NestJS构建一个好的老式RESTAPI todo服务器。然后,我使用这篇文章将Auth0添加到其中,这篇文章让您使用了AuthGuard: 然而,我始终无法使事情正常运行,总是出现401未经授权的错误。这令人沮丧 然后我发现了这篇文章: 这让我构建了中间件来通过Auth0和JWT进行身份验证。你瞧,它成功了 但是感觉不对——我觉得我应该能够使用@UseGuards和AuthGuard以及所有NestJS装饰程序来完成整个授权工作 所以我想我的问题有两个:我犹豫

我陷入了一个难题

我开始使用NestJS构建一个好的老式RESTAPI todo服务器。然后,我使用这篇文章将Auth0添加到其中,这篇文章让您使用了
AuthGuard

然而,我始终无法使事情正常运行,总是出现
401未经授权的
错误。这令人沮丧

然后我发现了这篇文章:

这让我构建了中间件来通过Auth0和JWT进行身份验证。你瞧,它成功了

但是感觉不对——我觉得我应该能够使用
@UseGuards
AuthGuard
以及所有NestJS装饰程序来完成整个授权工作


所以我想我的问题有两个:我犹豫使用中间件而不是NestJS装饰器是不是错了?还有谁有一个在NestJS中使用decorator的简单实用的例子吗?

这是一个基于观点的例子,但是,其中很大一部分在文档中,是推荐的良好实践,所以我将尝试回答

我强烈建议使用
@Guard
。NestJS几乎在所有方面都使用装饰器。它肯定是固执己见的,但不知何故它是基于全世界都在使用的Spring。修饰符使代码非常冗长,因为您可以清楚地看到什么适用于类或特定方法

我从未与NestJS中的JWT警卫发生过任何问题

请看这里:

它对我来说很有魅力

无论如何-您也可以尝试使用JWT的自定义防护,例如。当然,调试应该更容易,不过,据我记忆所及,内置的JWT guard可以提供良好的日志


我建议对与每个响应或请求交互的东西使用中间件,并对所有auth东西进行保护。

谢谢——这和我的想法差不多。关于如何使用中间件的建议是正确的。只是感觉不对。我会解决@Guard的问题。如果遇到麻烦,请随时发布问题,并在评论中提及我,我会尽力来帮助你