как получить данные пользователя с помощью 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, поэтому приведенное выше решение не сработало для меня. Возможно, вам стоит увидеть это решение.