9d1a37e248
Build and Push Docker Images / detect-changes (push) Successful in 10s
Build and Push Docker Images / build-auth-api (push) Successful in 58s
Build and Push Docker Images / build-employee-api (push) Successful in 58s
Build and Push Docker Images / build-transit-api (push) Successful in 59s
Build and Push Docker Images / build-error-log-api (push) Successful in 1m8s
Build and Push Docker Images / build-admin-ui (push) Successful in 1m14s
Build and Push Docker Images / deploy-test-node (push) Successful in 5s
30 lines
941 B
Dart
30 lines
941 B
Dart
import 'package:flutter/material.dart';
|
|
import 'auth_service.dart';
|
|
|
|
/// Global navigator and messenger keys so services can navigate/logout
|
|
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
|
final GlobalKey<ScaffoldMessengerState> messengerKey = GlobalKey<ScaffoldMessengerState>();
|
|
|
|
/// Handle expired authentication: clear stored token and navigate to login.
|
|
Future<void> handleAuthExpired({String? message}) async {
|
|
try {
|
|
await AuthService().logout();
|
|
} catch (_) {}
|
|
|
|
// Show a message if possible
|
|
try {
|
|
final messenger = messengerKey.currentState;
|
|
if (messenger != null && message != null) {
|
|
messenger.showSnackBar(SnackBar(content: Text(message)));
|
|
}
|
|
} catch (_) {}
|
|
|
|
// Navigate to login, removing all previous routes
|
|
try {
|
|
final nav = navigatorKey.currentState;
|
|
if (nav != null) {
|
|
nav.pushNamedAndRemoveUntil('/login', (r) => false);
|
|
}
|
|
} catch (_) {}
|
|
}
|