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(