initialize method
Llamar al arrancar la app. Decodifica el JWT localmente, comprueba que no haya caducado y carga en memoria los claims disponibles.
Devuelve true si la sesión sigue activa, false si ha caducado
o no existe token (en cuyo caso el storage ya ha sido limpiado).
Claims disponibles del JWT de Spring Boot: role → rol del usuario surname → apellido (usado como nombre de display al reiniciar) serviceId → id del servicio asignado
Implementation
Future<bool> initialize() async {
final claims = await _authService.initializeSession();
if (claims == null) {
_userRole = null;
_userName = null;
_serviceId = null;
_userId = null;
notifyListeners();
return false;
}
_userRole = claims['role'] as String?;
// En el JWT solo está el apellido; se usa como nombre de display
// hasta que el usuario haga un login completo que devuelva 'name'
_userName = claims['surname'] as String?;
_serviceId = claims['serviceId']?.toString();
_userId = claims['sub']?.toString();
notifyListeners();
return true;
}