Я пытаюсь интегрировать паспорт в 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);
});