如果我们不使用@AuthGuard装饰器将其导入每个模块中,则会在日志中显示以下警告。
为了使用“ defaultStrategy”,请确保导入 使用AuthGuard()的每个位置的PassportModule。 否则,护照将无法正常工作
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.register({
secretOrPrivateKey: 'secretKey',
signOptions: {
expiresIn: 3600,
},
}),
UsersModule,
],
providers: [AuthService, JwtStrategy],
})
export class AuthModule {}
除了在每个模块中导入“ PassportModule.register({defaultStrategy:'jwt'})”之外,还有其他方法。
答案 0 :(得分:1)
假设您的其他模块正在导入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 {}