Improved credential checking for CheckupPage

This commit is contained in:
Andrew 2023-04-11 15:46:37 +07:00
parent 2c1ad486df
commit 529ec239d1

View file

@ -2,6 +2,7 @@ import 'package:animated_background/animated_background.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart'; import 'package:get_storage/get_storage.dart';
import 'package:tuuli_app/api/api_client.dart';
class CheckupPage extends StatefulWidget { class CheckupPage extends StatefulWidget {
const CheckupPage({super.key}); const CheckupPage({super.key});
@ -16,13 +17,8 @@ class _CheckupPageState extends State<CheckupPage>
void initState() { void initState() {
super.initState(); super.initState();
final accessToken = GetStorage().read<String?>("accessToken");
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
if (accessToken == null) { checkCredentials();
Get.offAllNamed("/login");
} else {
Get.offAllNamed("/home");
}
}); });
} }
@ -51,4 +47,19 @@ class _CheckupPageState extends State<CheckupPage>
), ),
); );
} }
Future<void> checkCredentials() async {
final accessToken = GetStorage().read<String?>("accessToken");
if (accessToken == null) {
Get.offAllNamed("/login");
} else {
final apiClient = Get.find<ApiClient>();
(await apiClient.tablesList()).unfold((data) {
Get.offAllNamed("/home");
}, (error) async {
await GetStorage().remove("accessToken");
Get.offAllNamed("/login");
});
}
}
} }