Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
auth_guard.dart
Go to the documentation of this file.
1import 'dart:async';
2
3import 'package:connect/core/router/auth_service.dart';
4import 'package:flutter/material.dart';
5import 'package:go_router/go_router.dart';
6
7import 'routes.dart';
8
9class AuthGuard extends GoRouteData {
10 AuthGuard._();
11
12 static final AuthGuard instance = AuthGuard._();
14
15 @override
16 FutureOr<String?> redirect(BuildContext context, GoRouterState state) async {
17 final isAuthenticated = await _authService.isTokenValid();
18 final isLoginRoute = state.matchedLocation == Routes.signIn.route;
19
20 if (!isAuthenticated && !isLoginRoute) {
21 return Routes.signIn.route;
22 }
23
24 if (isAuthenticated && isLoginRoute) {
25 return Routes.mainMenu.route;
26 }
27
28 return null;
29 }
30}
override FutureOr< String?> redirect(BuildContext context, GoRouterState state) async
static final AuthGuard instance
AuthGuard _()
final AuthService _authService
Routes
Definition routes.dart:32