как получить данные пользователя с помощью req.user в декораторе в nest js

Я создал аутентификацию ( jwt), и процесс выполнен правильно.

Я могу получить доступ к информации о пользователе, используя следующий код, но я не могу получить информацию о пользователе с помощью декоратора!

контроллер:

@Post('/me/info')
  @UseGuards(AuthGuard())
  myInfo(
    @GetUser() user,
    @Req() req,
  ) {
    console.log(user); // undefined 
    console.log(req.user); // get user data object
  }

мой декоратор:

import { createParamDecorator } from '@nestjs/common';
import { User } from './user.entity';

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

в чем проблема моего кода?

2 ответа

Решение

Если посмотреть на документацию nestjs в декораторах костюмов, можно увидеть:
https://docs.nestjs.com/custom-decorators

export const User = createParamDecorator(
  (data: unknown, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    return request.user;
  },
);

Привет, я работал с Typescript и graphql, поэтому приведенное выше решение не сработало для меня. Возможно, вам стоит увидеть это решение.

Пользовательский декоратор NestJS возвращает undefined

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