如果我们不使用@authGuard decorator在每个模块中导入它们,那么它将在日志中显示以下警告。
为了使用“默认策略”,请确保导入
使用authGuard()的每个位置的passportmodule。
否则,passport将无法正常工作
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.register({
secretOrPrivateKey: 'secretKey',
signOptions: {
expiresIn: 3600,
},
}),
UsersModule,
],
providers: [AuthService, JwtStrategy],
})
export class AuthModule {}
除了在每个模块中导入“passportmodule.register({defaultstrategy:'jwt'})”之外,还有其他方法吗?
最佳答案
假设您的其他模块正在导入AuthModule
以便访问AuthService
,您可以重新导出PassportModule
:
const passportModule = PassportModule.register({ defaultStrategy: 'jwt' });
@Module({
imports: [
passportModule,
JwtModule.register({
secretOrPrivateKey: 'secretKey',
signOptions: {
expiresIn: 3600,
},
}),
UsersModule,
],
providers: [AuthService, JwtStrategy],
exports: [passportModule]
})
export class AuthModule {}