【问题标题】:Optional authentication in Nest.js with @nestjs/passportNest.js 中使用 @nestjs/passport 的可选身份验证
【发布时间】:2019-10-04 00:17:08
【问题描述】:

我有一条需要经过身份验证和未经身份验证的用户使用的路由。我使用@UseGuards(AuthGuard('jwt')) 启用身份验证,但它会阻止任何未经身份验证的用户访问路由(正常)。

如何允许未经身份验证的用户也访问路由?

似乎没有选项可以传递给AuthGuard 以便在我的护照策略中检索它们。

【问题讨论】:

    标签: javascript node.js typescript passport.js nestjs


    【解决方案1】:

    您可以创建自己的AuthGuard,例如通过扩展现有的:

    export class OptionalJwtAuthGuard extends AuthGuard('jwt') {
    
      // Override handleRequest so it never throws an error
      handleRequest(err, user, info, context) {
        return user;
      }
    
    }
    

    然后在你的控制器上使用这个:

    @UseGuards(OptionalJwtAuthGuard)
    

    【讨论】:

      猜你喜欢
      • 2019-03-28
      • 2021-10-11
      • 2019-04-14
      • 2022-08-23
      • 2020-01-25
      • 2019-06-29
      • 1970-01-01
      • 2018-11-02
      • 2019-07-08
      相关资源
      最近更新 更多