gpt4 book ai didi

node.js - 我应该使用中间件还是守卫来通过 Auth0 和 nestjs 进行身份验证?

转载 作者:行者123 更新时间:2023-12-04 15:29:42 25 4
gpt4 key购买 nike

我陷入了困境。

我开始使用 NestJS 构建一个很好的老式 REST API todo 服务器。然后我使用这篇文章将 Auth0 添加到它,你可以使用 AuthGuard:

https://auth0.com/blog/developing-a-secure-api-with-nestjs-adding-authorization/

但是,我始终无法让事情正常工作,总是出现 401 Unauthorized 错误。这令人沮丧。

然后我找到了这篇文章:

https://auth0.com/blog/full-stack-typescript-apps-part-1-developing-backend-apis-with-nestjs/

让我构建中间件以使用 Auth0 和 JWT 进行身份验证。瞧,它奏效了。

但感觉不对 - 我觉得我应该能够使用 @UseGuardsAuthGuard 以及所有 NestJS 装饰器的好处来完成整个授权事情。

所以我想我的问题有两个方面:我对使用中间件而不是 NestJS 装饰器犹豫不决是错误的吗?有没有人有一个在 NestJS 中使用装饰器的简单有效的例子?

最佳答案

它有点基于意见,但是,它的很大一部分在文档中并且是推荐的良好做法,所以我会尝试回答。

我强烈建议使用 @Guard。 NestJS 几乎所有的东西都使用了装饰器。它肯定是自以为是,但它以某种方式基于全世界使用的 Spring。装饰器使代码非常冗长,因为您可以清楚地看到适用于类或特定方法的内容。

我从来没有遇到过例如NestJS 中的 JWT 守卫。

看这里:https://docs.nestjs.com/techniques/authentication#implementing-passport-jwt

它对我来说就像一个魅力。

无论如何 - 您也可以尝试使用您的自定义 Guard for JWT,例如https://github.com/auth0/node-jwks-rsa .调试起来肯定会更容易,但是,据我所知,内置的 JWT 守卫可以为您提供良好的日志。

我建议使用中间件来处理与每个响应或请求交互的东西,并建议使用 Guards 来处理所有身份验证的东西。

关于node.js - 我应该使用中间件还是守卫来通过 Auth0 和 nestjs 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61492354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com