【问题标题】:The jwt service this.jwtService.sign is not a functionjwt 服务 this.jwtService.sign 不是函数
【发布时间】:2020-10-24 14:04:56
【问题描述】:

在 AuthService 中使用此代码:

@Injectable()
AuthService {

  constructor(
    @InjectRepository(UserRepository)
    private jwtService: JwtService
    private userRepository: UserRepository
    ) {
  }

  async login(loginCredentialsDto: LoginCredentialsDto): Promise<{ accessToken: string }> {
    const email = await this.userRepository.validatePassword(loginCredentialsDto);
    const payload: JwtPayLoad = {email};
    return {
        accessToken: this.jwtService.sign(payload),
    };
  }
}

一旦在运行时编译,我会收到以下错误:

[Nest] 12998 - 07/03/2020, 9:22:20 PM [ExceptionsHandler] this.jwtService.sign 不是函数 +213303ms

下面是 AuthModule:

@Module({
    imports: [
        PassportModule.register({ defaultStrategy: 'jwt' }),
        JwtModule.register({
            secret: 'topSecret51',
            signOptions: {
                expiresIn: 3600,
            }
        }),
        TypeOrmModule.forFeature([UserRepository])],
    controllers: [AuthController],
    providers: [AuthService, JwtStrategy],
    exports: [
        JwtStrategy,
        PassportModule,
    ], }) 
export class AuthModule { }

有什么办法可以解决这个问题吗?

我重新安装了 npm,删除了节点模块并尝试修改代码。但是还是不行。

【问题讨论】:

    标签: typescript jwt nestjs nestjs-passport nestjs-jwt


    【解决方案1】:

    问题是在 Authservice 构造函数中应该是这样的:

    constructor(
        @InjectRepository(UserRepository)
        private userRepository: UserRepository,
        private jwtService: JwtService) {
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-20
      • 2019-05-26
      • 2015-10-08
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2019-02-04
      相关资源
      最近更新 更多