From e7afe8fddb6c415eb9aeaf6ee825da967a1b6acf Mon Sep 17 00:00:00 2001 From: Valentin CZERYBA Date: Thu, 6 Mar 2025 21:27:06 +0100 Subject: [PATCH] add check token 25% --- covas_mobile/lib/classes/auth_service.dart | 17 +++++++++++++++++ covas_mobile/lib/pages/AddProfile.dart | 4 ++++ covas_mobile/lib/pages/Camera.dart | 5 +++-- covas_mobile/lib/pages/CameraEdit.dart | 5 ++++- .../lib/pages/DisplayPictureScreen.dart | 4 ++++ covas_mobile/lib/pages/EditEvent.dart | 8 +++++--- covas_mobile/lib/pages/ListItemMenu.dart | 3 +++ 7 files changed, 40 insertions(+), 6 deletions(-) diff --git a/covas_mobile/lib/classes/auth_service.dart b/covas_mobile/lib/classes/auth_service.dart index 507c3e4..ba32f13 100644 --- a/covas_mobile/lib/classes/auth_service.dart +++ b/covas_mobile/lib/classes/auth_service.dart @@ -3,6 +3,8 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:http/http.dart' as http; import '../variable/globals.dart' as globals; import 'dart:io'; +import 'package:flutter/material.dart'; +import '../pages/LoginDemo.dart'; class AuthService { // Login with username and password @@ -86,6 +88,21 @@ class AuthService { } } + Future checkTokenStatus(context) async { + bool loggedIn = await isLoggedIn(); + SharedPreferences prefs = await SharedPreferences.getInstance(); + + if (!loggedIn) { + await prefs.remove("access_token"); // Correctly remove the token + + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => LoginDemo()), + (route) => false, // Remove all previous routes + ); + } + } + // Get stored access token Future getAccessToken() async { final prefs = await SharedPreferences.getInstance(); diff --git a/covas_mobile/lib/pages/AddProfile.dart b/covas_mobile/lib/pages/AddProfile.dart index ed154b1..7e79277 100644 --- a/covas_mobile/lib/pages/AddProfile.dart +++ b/covas_mobile/lib/pages/AddProfile.dart @@ -13,6 +13,7 @@ import '../variable/globals.dart' as globals; import '../classes/ad_helper.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart'; +import '../classes/auth_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -39,6 +40,7 @@ class AddProfile extends StatefulWidget { class _AddProfileState extends State with ShowAlertDialog { BannerAd? _bannerAd; + final AuthService _authService = AuthService(); TextEditingController inputUserName = TextEditingController(); @@ -140,6 +142,8 @@ class _AddProfileState extends State with ShowAlertDialog { @override void initState() { super.initState(); + _authService.checkTokenStatus(context); + AdHelper.createBannerAd(() => setState(() {})).then((ad) { setState(() { _bannerAd = ad; diff --git a/covas_mobile/lib/pages/Camera.dart b/covas_mobile/lib/pages/Camera.dart index 17fd22f..6c79f94 100644 --- a/covas_mobile/lib/pages/Camera.dart +++ b/covas_mobile/lib/pages/Camera.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:io'; import 'package:image_picker/image_picker.dart'; import '../classes/MyDrawer.dart'; @@ -7,6 +6,7 @@ import '../classes/MyDrawer.dart'; import 'DisplayPictureScreen.dart'; import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; +import '../classes/auth_service.dart'; Future main() async { // Ensure that plugin services are initialized so that `availableCameras()` @@ -46,12 +46,14 @@ class Camera extends StatefulWidget { class CameraState extends State { late CameraController _controller; late Future _initializeControllerFuture; + final AuthService _authService = AuthService(); @override void initState() { super.initState(); // To display the current output from the Camera, // create a CameraController. + _authService.checkTokenStatus(context); _controller = CameraController( // Get a specific camera from the list of available cameras. @@ -95,7 +97,6 @@ class CameraState extends State { // camera preview. Use a FutureBuilder to display a loading spinner until the // controller has finished initializing. drawer: MyDrawer(), - body: FutureBuilder( future: _initializeControllerFuture, builder: (context, snapshot) { diff --git a/covas_mobile/lib/pages/CameraEdit.dart b/covas_mobile/lib/pages/CameraEdit.dart index ad91db5..09034ce 100644 --- a/covas_mobile/lib/pages/CameraEdit.dart +++ b/covas_mobile/lib/pages/CameraEdit.dart @@ -7,6 +7,7 @@ import 'package:image_picker/image_picker.dart'; import 'EditEvent.dart'; import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; +import '../classes/auth_service.dart'; Future main() async { // Ensure that plugin services are initialized so that `availableCameras()` @@ -45,10 +46,13 @@ class CameraEdit extends StatefulWidget { class CameraEditState extends State { late CameraController _controller; late Future _initializeControllerFuture; + final AuthService _authService = AuthService(); @override void initState() { super.initState(); + _authService.checkTokenStatus(context); + // To display the current output from the Camera, // create a CameraController. @@ -95,7 +99,6 @@ class CameraEditState extends State { // camera preview. Use a FutureBuilder to display a loading spinner until the // controller has finished initializing. drawer: MyDrawer(), - body: FutureBuilder( future: _initializeControllerFuture, builder: (context, snapshot) { diff --git a/covas_mobile/lib/pages/DisplayPictureScreen.dart b/covas_mobile/lib/pages/DisplayPictureScreen.dart index 73711df..e14612c 100644 --- a/covas_mobile/lib/pages/DisplayPictureScreen.dart +++ b/covas_mobile/lib/pages/DisplayPictureScreen.dart @@ -16,6 +16,7 @@ import '../classes/MyDrawer.dart'; import '../classes/ad_helper.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart'; +import '../classes/auth_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -62,11 +63,14 @@ class DisplayPictureScreen extends StatefulWidget { class DisplayPictureScreenState extends State with ShowDescImageAdd, ShowAlertDialog, TickerProviderStateMixin { BannerAd? _bannerAd; + final AuthService _authService = AuthService(); late AnimationController controller; @override void initState() { super.initState(); + _authService.checkTokenStatus(context); + AdHelper.createBannerAd(() => setState(() {})).then((ad) { setState(() { _bannerAd = ad; diff --git a/covas_mobile/lib/pages/EditEvent.dart b/covas_mobile/lib/pages/EditEvent.dart index 69d7691..00900f1 100644 --- a/covas_mobile/lib/pages/EditEvent.dart +++ b/covas_mobile/lib/pages/EditEvent.dart @@ -9,12 +9,9 @@ import 'package:textfield_tags/textfield_tags.dart'; import 'dart:convert'; import 'dart:io'; -import 'dart:typed_data'; import '../classes/events.dart'; import '../classes/MyDrawer.dart'; -import 'ItemMenu.dart'; -import 'CameraEdit.dart'; import 'package:camera/camera.dart'; import '../classes/alert.dart'; @@ -24,6 +21,7 @@ import '../variable/globals.dart' as globals; import '../classes/ad_helper.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart'; +import '../classes/auth_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -60,6 +58,8 @@ class EditEvent extends StatefulWidget { class _EditEventState extends State with ShowAlertDialog, ShowEventDialog { BannerAd? _bannerAd; + final AuthService _authService = AuthService(); + TextEditingController inputName = TextEditingController(); TextEditingController inputDate = TextEditingController(); @@ -315,6 +315,8 @@ class _EditEventState extends State @override void initState() { super.initState(); + _authService.checkTokenStatus(context); + AdHelper.createBannerAd(() => setState(() {})).then((ad) { setState(() { _bannerAd = ad; diff --git a/covas_mobile/lib/pages/ListItemMenu.dart b/covas_mobile/lib/pages/ListItemMenu.dart index 58f1b1f..5ffa41d 100644 --- a/covas_mobile/lib/pages/ListItemMenu.dart +++ b/covas_mobile/lib/pages/ListItemMenu.dart @@ -18,6 +18,7 @@ import 'package:camera/camera.dart'; import '../classes/ad_helper.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart'; +import '../classes/auth_service.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -46,6 +47,7 @@ class ListItemMenu extends StatefulWidget { class _MyHomePageState extends State { BannerAd? _bannerAd; + final AuthService _authService = AuthService(); Future> postsFuture = getPosts(); List filteredPosts = []; @@ -145,6 +147,7 @@ class _MyHomePageState extends State { @override void initState() { super.initState(); + _authService.checkTokenStatus(context); AdHelper.createBannerAd(() => setState(() {})).then((ad) { setState(() { _bannerAd = ad;