如何在 nest js 的装饰器上使用 req.user 获取用户数据
how to get user data with req.user on decorator in 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;
});
我的代码有什么问题?
问题出在createParamDecorator
。
摘自official manual on custom decorators:
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
export const User = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.user;
},
);
您好,我正在使用 Typescript 和 graphql,所以上述解决方案对我不起作用。也许你应该看看这个解决方案。
我创建了身份验证 ( 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;
});
我的代码有什么问题?
问题出在createParamDecorator
。
摘自official manual on custom decorators:
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
export const User = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.user;
},
);
您好,我正在使用 Typescript 和 graphql,所以上述解决方案对我不起作用。也许你应该看看这个解决方案。