fix: BUG-02 IC-03 session expirée sur Workflow Financier et Messagerie
Ajoute KeycloakAuthService.getValidAccessToken() qui vérifie l'expiration du JWT et rafraîchit automatiquement avant de retourner le token. FinanceWorkflowRemoteDatasource et MessagingRemoteDatasource injectent désormais KeycloakAuthService au lieu de FlutterSecureStorage directement, ce qui évite d'envoyer un Bearer expiré et d'obtenir un 401 silencieux.
This commit is contained in:
@@ -3,26 +3,26 @@ library finance_workflow_remote_datasource;
|
||||
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:injectable/injectable.dart';
|
||||
import '../../../../core/config/environment.dart';
|
||||
import '../../../../core/error/exceptions.dart';
|
||||
import '../../../authentication/data/datasources/keycloak_auth_service.dart';
|
||||
import '../models/transaction_approval_model.dart';
|
||||
import '../models/budget_model.dart';
|
||||
|
||||
@lazySingleton
|
||||
class FinanceWorkflowRemoteDatasource {
|
||||
final http.Client client;
|
||||
final FlutterSecureStorage secureStorage;
|
||||
final KeycloakAuthService authService;
|
||||
|
||||
FinanceWorkflowRemoteDatasource({
|
||||
required this.client,
|
||||
required this.secureStorage,
|
||||
required this.authService,
|
||||
});
|
||||
|
||||
/// Headers HTTP avec authentification
|
||||
/// Headers HTTP avec authentification — rafraîchit le token si expiré (fix IC-03)
|
||||
Future<Map<String, String>> _getHeaders() async {
|
||||
final token = await secureStorage.read(key: 'kc_access');
|
||||
final token = await authService.getValidAccessToken();
|
||||
return {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json',
|
||||
|
||||
Reference in New Issue
Block a user