From da6bfbf8963b63fd0edfc4c8adfe1500cef3802f Mon Sep 17 00:00:00 2001 From: hailin Date: Mon, 9 Mar 2026 08:23:26 -0700 Subject: [PATCH] fix(auth): add name to JWT payload, fix phone-user session restore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JWT payload was missing 'name' field — phone-invited users showed empty name after app restart (session restore from JWT). Also added phone fallback in Flutter _decodeUserFromJwt. Co-Authored-By: Claude Sonnet 4.6 --- it0_app/lib/features/auth/data/providers/auth_provider.dart | 5 +++-- .../auth-service/src/application/services/auth.service.ts | 1 + .../src/infrastructure/strategies/jwt.strategy.ts | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/it0_app/lib/features/auth/data/providers/auth_provider.dart b/it0_app/lib/features/auth/data/providers/auth_provider.dart index 3a7a0d5..c4a19ef 100644 --- a/it0_app/lib/features/auth/data/providers/auth_provider.dart +++ b/it0_app/lib/features/auth/data/providers/auth_provider.dart @@ -114,8 +114,9 @@ class AuthNotifier extends StateNotifier { ) as Map; return AuthUser( id: payload['sub'] as String, - email: payload['email'] as String? ?? '', - name: payload['name'] as String? ?? payload['email'] as String? ?? '', + email: payload['email'] as String?, + phone: payload['phone'] as String?, + name: payload['name'] as String? ?? payload['email'] as String? ?? payload['phone'] as String? ?? '', roles: (payload['roles'] as List?)?.cast() ?? [], tenantId: payload['tenantId'] as String?, ); diff --git a/packages/services/auth-service/src/application/services/auth.service.ts b/packages/services/auth-service/src/application/services/auth.service.ts index 797f349..5d2d04e 100644 --- a/packages/services/auth-service/src/application/services/auth.service.ts +++ b/packages/services/auth-service/src/application/services/auth.service.ts @@ -714,6 +714,7 @@ export class AuthService { sub: user.id, email: user.email, phone: user.phone, + name: user.name, tenantId: user.tenantId, roles: user.roles, }; diff --git a/packages/services/auth-service/src/infrastructure/strategies/jwt.strategy.ts b/packages/services/auth-service/src/infrastructure/strategies/jwt.strategy.ts index 1a2f223..aa84794 100644 --- a/packages/services/auth-service/src/infrastructure/strategies/jwt.strategy.ts +++ b/packages/services/auth-service/src/infrastructure/strategies/jwt.strategy.ts @@ -6,6 +6,7 @@ export interface JwtPayload { sub: string; email?: string; phone?: string; + name?: string; tenantId: string; roles: string[]; }