mgo*_*mgo 2 typescript passport.js nestjs
我基于该文章实现了身份验证策略:https://docs.nestjs.com/techniques/authentication.但我想在检查角色时扩展JwtStrategy.最简单的方法是添加对oles的检查,jwt.strategy.ts因为已经有用户基于JWT有效负载.
但我不知道如何将额外的参数传递给validate函数.
我想要实现的内容:
async validate(payload: JwtPayload, done: Function, role: string) {
const user = await this.authService.validateUser(payload);
if (!user || user.role !== role) {
return done(new UnauthorizedException(), false);
}
done(null, user);
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将额外的role参数传递给该函数.我正在使用装饰器@UseGuards(AuthGuard('jwt'))来启用防护.我想要实现的是在那里添加一个额外的参数role字符串并在JWTStrategy中使用它.
实现它的最简单方法是什么?或者我需要实施两个单独的守卫?
编辑:其实我不知道AuthGuard自动附加用户请求.解决方案只是简单地从@ hdias2310指向的url实现RoleGuard.(https://docs.nestjs.com/guards)
小智 5
您需要另外一名警卫才能进行角色验证.
您可以在"基于角色的身份验证"部分中获取NestJS文档(https://docs.nestjs.com/guards)中的实现示例.
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |