fix(auth): add name to JWT payload, fix phone-user session restore

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 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-09 08:23:26 -07:00
parent 4b2b3dca0c
commit da6bfbf896
3 changed files with 5 additions and 2 deletions

View File

@ -114,8 +114,9 @@ class AuthNotifier extends StateNotifier<AuthState> {
) as Map<String, dynamic>;
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<String>() ?? [],
tenantId: payload['tenantId'] as String?,
);

View File

@ -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,
};

View File

@ -6,6 +6,7 @@ export interface JwtPayload {
sub: string;
email?: string;
phone?: string;
name?: string;
tenantId: string;
roles: string[];
}