Как получить запрос на изменение в промежуточном программном обеспечении nest js? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь интегрировать паспорт в Nest JS и получать текущую информацию об авторизации в любом месте с помощью декоратора. Моя версия Nest Js была настолько старой, что я обновил версию Nest JS и изменил код на приведенный ниже. После изменения кода промежуточного программного обеспечения я больше не могу получать текущую информацию об авторизации.

Как получить информацию об авторизации с помощью измененного промежуточного программного обеспечения?

Код перед изменением промежуточного программного обеспечения:

 export class authMiddlware implements NestMiddleware {
  async resolve(): Promise<MiddlewareFunction> {
    return async (req, res, next) => {
      passport.authenticate('jwt', { session: false }, (err, user, info) => {

        if (err) {
          return next(err);
        }

        if (user) {
          req.user = user;
        }

        return next();
      })(req, res, next);
    };
  }

После изменения промежуточного программного обеспечения: в passport.authenticate я могу получить измененного пользователя из запроса, но из паспорта я не могу получить пользователя из запроса.


 @Injectable()
 export class authMiddlware implements NestMiddleware {
   use(req: Request, res: Response, next: Function) {
      passport.authenticate('jwt', { session: false }, (err, user, info) => {

        if (err) {
          return next(err);
        }

        if (user) {
          req.user = user;
        }

        console.log(req.user)

        next();
      })(req, res, next);

      console.log(req.user)
    };
  }

The user.decorator:

export const passUser= createParamDecorator((data, req) => {
  return plainToClass(User, req.user);
});

...