如果我们不使用@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 {}

08-08 03:53