From 608e22a8e7043320fe1bd3fa11d3a5f5d78576dd Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 11 Jan 2026 18:18:21 -0800 Subject: [PATCH] =?UTF-8?q?fix(contribution-service):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?JWT=E9=AA=8C=E8=AF=81=E4=B8=8Eauth-service=E4=B8=8D=E5=85=BC?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 type 字段检查 (auth-service 不生成此字段) - 修复 JwtPayload 接口与 auth-service 生成的 token 结构一致 - 从 payload.sub 获取 accountSequence Co-Authored-By: Claude Opus 4.5 --- .../src/shared/guards/jwt-auth.guard.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/backend/services/contribution-service/src/shared/guards/jwt-auth.guard.ts b/backend/services/contribution-service/src/shared/guards/jwt-auth.guard.ts index 2892f3d4..b3ea4231 100644 --- a/backend/services/contribution-service/src/shared/guards/jwt-auth.guard.ts +++ b/backend/services/contribution-service/src/shared/guards/jwt-auth.guard.ts @@ -13,9 +13,9 @@ export const IS_PUBLIC_KEY = 'isPublic'; export const Public = () => SetMetadata(IS_PUBLIC_KEY, true); export interface JwtPayload { - sub: string; - accountSequence: string; - type: 'access' | 'refresh'; + sub: string; // accountSequence + phone?: string; + source?: string; iat: number; exp: number; } @@ -49,14 +49,13 @@ export class JwtAuthGuard implements CanActivate { const secret = this.configService.get('JWT_SECRET', 'default-secret'); const payload = jwt.verify(token, secret) as JwtPayload; - if (payload.type !== 'access') { - throw new UnauthorizedException('Invalid token type'); - } - // 将用户信息附加到请求对象 + // payload.sub 是 accountSequence (由 auth-service 签发) request.user = { userId: payload.sub, - accountSequence: payload.accountSequence, + accountSequence: payload.sub, + phone: payload.phone, + source: payload.source, }; return true;