diff --git a/docs/prompt.md b/docs/prompt.md
index 09ec7bc..8ec14d9 100644
--- a/docs/prompt.md
+++ b/docs/prompt.md
@@ -49,3 +49,7 @@ Folgende Dateien wurden in diesem Prompt verändert:
Folgende Dateien wurden in diesem Prompt verändert:
- frontend_splatournament_manager/pubspec.yaml
- frontend_splatournament_manager/lib/providers/theme_provider.dart
+
+- Implement auth-aware router to keep users logged in after app restart.
+Folgende Dateien wurden in diesem Prompt verändert:
+ - frontend_splatournament_manager/lib/main.dart
diff --git a/frontend_splatournament_manager/lib/main.dart b/frontend_splatournament_manager/lib/main.dart
index 5eeb7dd..2474631 100644
--- a/frontend_splatournament_manager/lib/main.dart
+++ b/frontend_splatournament_manager/lib/main.dart
@@ -45,8 +45,25 @@ class SplatournamentApp extends StatelessWidget {
}
}
-var routes = GoRouter(
+final routes = GoRouter(
initialLocation: '/login',
+ redirect: (context, state) async {
+ final authProvider = Provider.of(context, listen: false);
+ await authProvider.checkAuthStatus();
+
+ final isLoggedIn = authProvider.isLoggedIn;
+ final isGoingToLogin = state.matchedLocation == '/login';
+ // redirect to login
+ if (!isLoggedIn && !isGoingToLogin) {
+ return '/login';
+ }
+ //already logged in
+ if (isLoggedIn && isGoingToLogin) {
+ return '/';
+ }
+
+ return null;
+ },
routes: [
GoRoute(path: "/login", builder: (context, state) => const LoginPage()),
GoRoute(