/** * @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(); const user = request['user']; if (!user) { throw new Error('CurrentUser decorator used without JWT guard'); } return user as JwtPayload; }, );