add cross login from other regional

This commit is contained in:
2024-12-24 10:01:51 +07:00
parent c0e21811c0
commit 3692ba55eb
10 changed files with 364 additions and 14 deletions

View File

@@ -1,5 +1,7 @@
import 'dart:convert';
import 'dart:html' as html;
import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
@@ -36,14 +38,28 @@ class LoginBox extends HookConsumerWidget {
final regionalLoading = useState(false);
final isLoading = useState(false);
final errorMsg = useState("");
getPref() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? getData = prefs.getString(Constant.tokenName);
print(getData);
if (getData != null) {
ref.read(authProvider.notifier).state =
AuthModel.fromJson(jsonDecode(getData));
final Uri currentUrl = Uri.parse(html.window.location.href);
final String? token = currentUrl.queryParameters['token'];
if (token != null) {
final jwt = JWT.decode(token);
final payload = jwt.payload;
AuthModel user = AuthModel.fromJson(payload);
user.token = token;
ref.read(authProvider.notifier).state = user;
Navigator.pushNamed(context, homeRoute);
} else {
final String? getData = prefs.getString(Constant.tokenName);
print(getData);
if (getData != null) {
ref.read(authProvider.notifier).state =
AuthModel.fromJson(jsonDecode(getData));
Navigator.pushNamed(context, homeRoute);
}
}
}

View File

@@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:mitra_corporate/screen/login/login_box.dart';
import 'login_box.dart';
import '../../app/constant.dart';
class LoginScreen extends StatelessWidget {
const LoginScreen({super.key});
@override
Widget build(BuildContext context) {
return Material(