| 12345678910111213141516171819202122 |
- /**
- * @CurrentUser 参数装饰器 - 从 request 中提取已认证用户信息
- */
- import { createParamDecorator, ExecutionContext } from '@nestjs/common';
- import type { Request } from 'express';
- export interface JwtPayload {
- sub: string; // userId
- email: string;
- role: string; // user | admin
- }
- export const CurrentUser = createParamDecorator(
- (_data: unknown, ctx: ExecutionContext): JwtPayload => {
- const request = ctx.switchToHttp().getRequest<Request>();
- const user = request['user'];
- if (!user) {
- throw new Error('CurrentUser decorator used without JWT guard');
- }
- return user as JwtPayload;
- },
- );
|