fixed logout at refresh failed

This commit is contained in:
amirrezaghabeli
2026-04-16 16:36:55 +03:30
parent 41bba5d32c
commit cc0032b21d
12 changed files with 475 additions and 344 deletions
+12
View File
@@ -17,6 +17,14 @@ class NetworkManager {
bool _interceptorsAdded = false;
final SharedPreferences _prefs;
/// Callback invoked when refresh token fails (expired, missing, or errored).
/// Should clear local auth state and navigate to the login screen.
/// // Callback to be called when refresh token fails (logout callback)
Future<void> Function()? _onAuthFailed;
void setAuthFailed(Future<void> Function() callback) {
_onAuthFailed = callback;
}
NetworkManager(this._prefs)
: mainDio = Dio(
BaseOptions(
@@ -75,6 +83,10 @@ class NetworkManager {
mainDio.options.headers['Authorization'] = 'Bearer $newAccessToken';
return handler.resolve(await mainDio.fetch(error.requestOptions));
}
// Refresh token failed force logout
appLogger.error('❌ Refresh token failed, triggering logout');
await _onAuthFailed!();
}
return handler.next(error);
},