add auth-router
This commit is contained in:
@@ -49,3 +49,7 @@ Folgende Dateien wurden in diesem Prompt verändert:
|
|||||||
Folgende Dateien wurden in diesem Prompt verändert:
|
Folgende Dateien wurden in diesem Prompt verändert:
|
||||||
- frontend_splatournament_manager/pubspec.yaml
|
- frontend_splatournament_manager/pubspec.yaml
|
||||||
- frontend_splatournament_manager/lib/providers/theme_provider.dart
|
- frontend_splatournament_manager/lib/providers/theme_provider.dart
|
||||||
|
|
||||||
|
- Implement auth-aware router to keep users logged in after app restart.<br><br>
|
||||||
|
Folgende Dateien wurden in diesem Prompt verändert:
|
||||||
|
- frontend_splatournament_manager/lib/main.dart
|
||||||
|
|||||||
@@ -45,8 +45,25 @@ class SplatournamentApp extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var routes = GoRouter(
|
final routes = GoRouter(
|
||||||
initialLocation: '/login',
|
initialLocation: '/login',
|
||||||
|
redirect: (context, state) async {
|
||||||
|
final authProvider = Provider.of<AuthProvider>(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: [
|
routes: [
|
||||||
GoRoute(path: "/login", builder: (context, state) => const LoginPage()),
|
GoRoute(path: "/login", builder: (context, state) => const LoginPage()),
|
||||||
GoRoute(
|
GoRoute(
|
||||||
|
|||||||
Reference in New Issue
Block a user