added invalid token chicking

This commit is contained in:
Username1548
2025-03-05 14:26:16 +07:00
parent ae6b2612d7
commit 96dc456ff4
8 changed files with 111 additions and 74 deletions

View File

@@ -1,6 +1,10 @@
import 'dart:developer';
import 'package:dio/dio.dart';
import 'package:eatvio_app/core/websockets/ws_manager.dart';
import 'package:eatvio_app/core/locator_service.dart';
import 'package:eatvio_app/core/token_storage.dart';
import 'package:eatvio_app/core/websockets/ws_service.dart';
import 'package:eatvio_app/features/auth/presentation/pages/auth_screen.dart';
import 'package:eatvio_app/features/blog_post/presentation/pages/blog_post_screen.dart';
import 'package:eatvio_app/features/blog_post_create/presentation/pages/blog_post_create_screen.dart';
@@ -70,9 +74,19 @@ class AppRouter {
redirect: (context, state) async {
// TokenStorage.removeTokenInStorage();
// await TokenStorage.saveTokenInStorage('Bearer 3|laravel_sanctum_zoubsO9NPXAqgLZEdHV9R3XbuDUHJJMJyXcd77mhbb649f04');
if (await TokenStorage.haveTokenInStorage()) {
return '/my-profile-screen';
final token = await TokenStorage.getTokenFromStorage();
if (token != null) {
try {
await sl<WsService>().getWebsocket();
return '/my-profile-screen';
} on DioException catch (e, st) {
if (e.response?.statusCode == 401 && e.response?.statusMessage == 'Unauthenticated.') {
TokenStorage.removeTokenInStorage();
}
log(e.toString(), stackTrace: st);
}
}
return null;
},
builder: (context, state) => const AuthScreen(),
@@ -111,7 +125,9 @@ class AppRouter {
await sl<WsManager>().initialize();
return null;
},
pageBuilder: (context, state) => NoTransitionPage(child: ProfileScreen()),
pageBuilder: (context, state) {
return NoTransitionPage(child: ProfileScreen());
},
),
GoRoute(
path: '/feed-screen',

View File

@@ -1,5 +1,5 @@
// String baseUrl = 'https://eatvio.ru';
String baseUrl = 'https://dev2.eatvio.com';
String baseUrl = 'https://eatvio.ru';
// String baseUrl = 'https://dev2.eatvio.com';
const List<int> durationValues = [7, 14, 21];

View File

@@ -20,7 +20,7 @@ abstract class TokenStorage {
}
}
static Future<String> getTokenFromStorage() async => (await FlutterSecureStorage().read(key: 'token'))!;
static Future<String?> getTokenFromStorage() async => await FlutterSecureStorage().read(key: 'token');
static saveTokenInStorage(String token) async {
await FlutterSecureStorage().write(key: 'token', value: token);