【发布时间】:2019-04-02 13:58:07
【问题描述】:
目前,我已经设法将 AuthGuard 与 JWT 身份验证一起使用,但我无法在 Roles 上获得 user。
我尝试关注 example 的猫,但我从未定义过 user 对象,您可以在第 14 行看到。
这是我的代码:
// auth.controller.ts
@Controller('auth')
@UseGuards(RolesGuard)
export class AuthController {
constructor(private readonly authService: AuthService) {}
@Get('token')
async createToken(): Promise<any> {
return await this.authService.createToken();
}
@Post()
@UseGuards(AuthGuard())
@Roles('admin')
findAll() {
// this route is restricted by AuthGuard
// JWT strategy
return 'Super important info';
}
}
// auth.module.ts
@Module({
imports: [
SharedModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.registerAsync({
imports: [SharedModule],
useFactory: async (configService: ConfigService) => ({
secretOrPrivateKey: configService.get('SECRET_KEY'),
signOptions: {
expiresIn: configService.get('SECRET_KEY_EXPIRES'),
},
}),
inject: [ConfigService],
}),
],
controllers: [AuthController],
providers: [
AuthService,
JwtStrategy,
],
})
export class AuthModule {}
所有其余部分与存储库中的示例完全相同。知道如何定义 users 吗?
【问题讨论】:
标签: javascript node.js typescript nestjs