AuthGuard сломан после обновления NestJS

У меня есть проект NestJS (версия 6), в котором реализована аутентификация с использованием jwt. Следующая конфигурация работала нормально:

      package.json
... 
“@nest-modules/mailer”: “^1.1.3",
“@nestjs/common”: “^6.6.7",
“@nestjs/core”: “^6.6.7",
“@nestjs/jwt”: “^6.1.1",
“@nestjs/passport”: “^6.1.0",
“@nestjs/platform-express”: “^6.6.7",
...

      jwt strategy file

@Injectable()
export class JwtBearerStrategy extends PassportStrategy(Strategy) {
  constructor(
    private readonly sessionService: SessionService,
    private readonly userRepository: UsersRepository
  ) {
    super({
      jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
      secretOrKey: SESSION_SECRET_KEY
    });
  }

  public async validate(session: Session) {
    const user = await this.userRepository.findByUsername(session.user.username);
    if (!user) {
      throw new UnauthorizedException();
    }
    delete user.password;
    return user;
  }
}

      End points are protected as follows
@Controller('/session')
export class SessionController {
  constructor(
    private readonly sessionService: SessionService,
    private readonly userRepository: UsersRepository
  ) {}

  @Get()
  @UseGuards(AuthGuard())
  public async getCurrentUser(@CurrentUser() currentUser: User) {
    return currentUser;
  }

Однако, поскольку я обновил ядро ​​nestJs и общие модули, я не могу извлечь файл Authenticate. Мой @CurrentUserдекоратор не может найти объект пользователя по запросу. Модули гнезд были обновлены следующим образом:

      ...
"@nestjs/common": "^7.6.15",
"@nestjs/core": "^7.6.15",
"@nestjs/jwt": "^7.2.0",
"@nestjs/microservices": "^7.6.15",
"@nestjs/passport": "^7.1.5",
"@nestjs/platform-express": "^7.6.15",
 ...

А теперь мой @UseGuards декоратор выдает эту настраиваемую ошибку:

      [CurrentUser Decorator]: No user found on request
  No user objet found on request
   * Please ensure Passport Module is configured correctly
   * Ensure that the controller, or method is using @UseGuards(AuthGuard())
  ** see docs/auth.md for more informaion **

Похоже, что в версии 7 AuthGuard работает несколько иначе. У кого-нибудь еще была эта проблема, и может ли он мне помочь?

0 ответов

Другие вопросы по тегам