如果我们不使用@AuthGuard装饰器将它们导入每个模块中,那么它将在日志中显示以下警告。
为了使用“ defaultStrategy”,请确保在使用AuthGuard()的每个位置导入PassportModule。否则,护照将无法正常工作
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.register({
secretOrPrivateKey: 'secretKey',
signOptions: {
expiresIn: 3600,
},
}),
UsersModule,
],
providers: [AuthService, JwtStrategy],
})
export class AuthModule {}
Run Code Online (Sandbox Code Playgroud)
除了在每个模块中导入“ PassportModule.register({defaultStrategy:'jwt'})”之外,还有其他方法吗?
在创建动态模块时,一些 nestjs 模块使用registerAsync()一些使用forRootAsync()。这是推荐的方法还是这两者之间有什么区别?
PassportModule.registerAsync({
imports: [ConfigModule],
useExisting: PassportConfigService,
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useExisting: TypeormConfigService,
}),
Run Code Online (Sandbox Code Playgroud)