繁体   English   中英

使用@ nestjs / passport在Nest.js中进行可选的身份验证

[英]Optional authentication in Nest.js with @nestjs/passport

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

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

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

您可以通过扩展现有的AuthGuard来创建自己的AuthGuard

export class OptionalJwtAuthGuard extends AuthGuard('jwt') {

  // Override handleRequest so it never throws an error
  handleRequest(err, user, info, context) {
    return user;
  }

}

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

@UseGuards(OptionalJwtAuthGuard)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM