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
+24 -1
View File
@@ -10,6 +10,7 @@ import 'package:provider/single_child_widget.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tm_app/core/config/dependencies.dart';
import 'package:tm_app/core/config/web_url_strategy.dart';
import 'package:tm_app/core/network/network_manager.dart';
import 'package:tm_app/core/services/cache_init.dart';
import 'package:tm_app/core/services/firebase_service.dart';
import 'package:tm_app/core/theme/theme_provider.dart';
@@ -45,6 +46,8 @@ void main() async {
await FirebaseService().initializeApp();
runApp(MultiProvider(providers: providers, child: const MyApp()));
}
@@ -57,6 +60,24 @@ class MyApp extends StatefulWidget {
class _MyAppState extends State<MyApp> {
Future<void> setupInteractedMessage() async {
final overlayCtx = rootNavigatorKey.currentContext;
final networkManager = overlayCtx?.read<NetworkManager>();
networkManager?.setAuthFailed(() async {
debugPrint('🔄 Refresh token failed - navigating to auth screen');
// Use appRouter to navigate to auth screen
final SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.clear();
appRouter.go('/login');
});
// networkManager.onAuthFailure(() async {
// debugPrint('🔄 Refresh token failed - navigating to auth screen');
// // Use appRouter to navigate to auth screen
// final SharedPreferences _prefs = await SharedPreferences.getInstance();
// await _prefs.clear();
// appRouter.go(AppRoutes.auth);
// });
final initialMessage = await FirebaseMessaging.instance.getInitialMessage();
if (initialMessage != null) {
@@ -65,7 +86,7 @@ class _MyAppState extends State<MyApp> {
// if (kIsWeb) {
FirebaseMessaging.onMessage.listen((event) {
final overlayCtx = rootNavigatorKey.currentContext;
if (overlayCtx != null) {
if (overlayCtx.mounted) {
@@ -88,6 +109,8 @@ class _MyAppState extends State<MyApp> {
);
}
@override
void initState() {
super.initState();