Nest.js中具有@ nestjs / passport的可选身份验证

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

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

似乎没有可以传递给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)

以上是 Nest.js中具有@ nestjs / passport的可选身份验证 的全部内容, 来源链接: utcz.com/qa/430610.html

回到顶部