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:
parent
4b2b3dca0c
commit
da6bfbf896
|
|
@ -114,8 +114,9 @@ class AuthNotifier extends StateNotifier<AuthState> {
|
||||||
) as Map<String, dynamic>;
|
) as Map<String, dynamic>;
|
||||||
return AuthUser(
|
return AuthUser(
|
||||||
id: payload['sub'] as String,
|
id: payload['sub'] as String,
|
||||||
email: payload['email'] as String? ?? '',
|
email: payload['email'] as String?,
|
||||||
name: payload['name'] as String? ?? 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>() ?? [],
|
roles: (payload['roles'] as List?)?.cast<String>() ?? [],
|
||||||
tenantId: payload['tenantId'] as String?,
|
tenantId: payload['tenantId'] as String?,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -714,6 +714,7 @@ export class AuthService {
|
||||||
sub: user.id,
|
sub: user.id,
|
||||||
email: user.email,
|
email: user.email,
|
||||||
phone: user.phone,
|
phone: user.phone,
|
||||||
|
name: user.name,
|
||||||
tenantId: user.tenantId,
|
tenantId: user.tenantId,
|
||||||
roles: user.roles,
|
roles: user.roles,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ export interface JwtPayload {
|
||||||
sub: string;
|
sub: string;
|
||||||
email?: string;
|
email?: string;
|
||||||
phone?: string;
|
phone?: string;
|
||||||
|
name?: string;
|
||||||
tenantId: string;
|
tenantId: string;
|
||||||
roles: string[];
|
roles: string[];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue