Typescript NestJs jwt auth global guards TypeError:无法读取属性';分泌素提供者';未定义的

Typescript NestJs jwt auth global guards TypeError:无法读取属性';分泌素提供者';未定义的,typescript,authentication,jwt,nestjs,Typescript,Authentication,Jwt,Nestjs,我正在使用全局过滤器,如下所示 const server = await NestFactory.create(ApplicationModule); server.useGlobalGuards(new (AuthGuard('jwt'))); 我的应用程序模块如下所示 import { Module } from '@nestjs/common'; import { JwtModule, JwtModuleOptions } from '@nestjs/jwt'; import { Pas

我正在使用全局过滤器,如下所示

const server = await NestFactory.create(ApplicationModule);
server.useGlobalGuards(new (AuthGuard('jwt')));
我的应用程序模块如下所示

import { Module } from '@nestjs/common';
import { JwtModule, JwtModuleOptions } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { Strategy } from 'passport-jwt';
import { AppController } from './application.controller';
import { ConfigModule, ConfigType } from '@nestjs/config';
import jwtConfig from './config/jwt.config';

@Module({
  imports: [
    ConfigModule.forFeature(jwtConfig),
    PassportModule.register({ defaultStrategy: 'jwt' }),
    JwtModule.registerAsync({
      imports: [ConfigModule.forFeature(jwtConfig)],
      useFactory: (config: ConfigType<typeof jwtConfig>) => {
        return {
          secret: config.secretKey,
          signOptions: { expiresIn: config.expiresIn },
        } as JwtModuleOptions;
      },
      inject: [jwtConfig.KEY],
    }),
  ],
  controllers: [
    AppController
  ],
  providers: [Strategy],
})
export class ApplicationModule {}

我错过了什么?我找不到任何使用全局身份验证保护的示例。

需要创建一个
JwtStrategy
(或其他一些passport策略类)。每个服务器/应用程序的逻辑不同,因此不可能说出一般的逻辑。这个例子展示得很好。

你能给我们展示一下整个堆栈跟踪吗?你的策略在哪里?@JayMcDoniel-Hey-man。你是天使。我实际上引用了一些代码,其中直接使用了“passport jwt”的import{Strategy};但在您的评论之后,我意识到可能需要实现它(我在一些代码中看到过,只是不知道是否需要,因为其他地方正在以上述方式实现)。我已经实施了这个策略,现在我没有犯错误。您可以使用以下代码发布答案。:)@Injectable()导出类JwtStrategy扩展了PassportStrategy(Strategy){constructor(private readonly userService:userService){super({jwtFromRequest:ExtractJwt.FromAuthHeaderAsberToken(),ignoreExpiration:false,SecretroKey:“process.env.JWT_SECRET_KEY”,}}),并在模块中使用它,如下所示。它成功了。提供者:[JwtStrategy,UserService],
TypeError: Cannot read property 'secretOrKeyProvider' of undefined