我有装饰师:
export const UserId = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.user?.id ? Number(request.user.id) : null;
},
);
我的代码:
如果我尝试在没有 @ApiBearerAuth() 的情况下获取信息,我只会看到有关第一个用户的所有信息。但是对于 @ApiBearerAuth() 我有错误。
我们需要方法 Get('/profile')
@Controller('users')
@ApiTags('users')
@ApiBearerAuth()
export class UsersController {
constructor(private readonly usersService: UsersService) {}
@Get('/profile')
@UseGuards(JwtAuthGuard)
getProfile(@UserId() id: number) {
console.log(id)
return this.usersService.findById(id);
}
}
功能:
async findById(id: number) {
return this.repository.findOneBy({
id,
});
}
为什么我看到 NaN?我听不懂。
我的问题是,当我获取令牌时,我尝试从 user.id 中获取 id,但我应该从 user._id 中获取它。