From 14c72b06d4b3185f16b7ab5b06c40223416e054d Mon Sep 17 00:00:00 2001 From: Tim Kainz Date: Wed, 11 Mar 2026 20:58:58 +0100 Subject: [PATCH] add auth-router --- docs/prompt.md | 4 ++++ frontend_splatournament_manager/lib/main.dart | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) 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(