25-2/24/1
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'package:Tripz/constant/api_key.dart';
|
||||
import 'package:Tripz/controller/functions/sss.dart';
|
||||
import 'package:Tripz/env/env.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'package:Tripz/constant/info.dart';
|
||||
import 'package:Tripz/controller/firebase/firbase_messge.dart';
|
||||
@@ -14,11 +18,16 @@ import 'package:Tripz/constant/links.dart';
|
||||
import 'package:Tripz/controller/functions/crud.dart';
|
||||
import 'package:Tripz/main.dart';
|
||||
import 'package:Tripz/views/home/map_page_passenger.dart';
|
||||
import 'package:jwt_decoder/jwt_decoder.dart';
|
||||
import 'package:location/location.dart';
|
||||
import 'package:secure_string_operations/secure_string_operations.dart';
|
||||
|
||||
import '../../constant/char_map.dart';
|
||||
import '../../constant/table_names.dart';
|
||||
import '../../print.dart';
|
||||
import '../functions/encrypt_decrypt.dart';
|
||||
import '../functions/package_info.dart';
|
||||
import '../functions/secure_storage.dart';
|
||||
|
||||
class LoginController extends GetxController {
|
||||
final formKey = GlobalKey<FormState>();
|
||||
@@ -36,6 +45,7 @@ class LoginController extends GetxController {
|
||||
update();
|
||||
}
|
||||
|
||||
var dev = '';
|
||||
@override
|
||||
void onInit() async {
|
||||
box.read(BoxName.isTest) == null ||
|
||||
@@ -75,13 +85,108 @@ class LoginController extends GetxController {
|
||||
update();
|
||||
}
|
||||
|
||||
getJwtWallet() async {
|
||||
await SecurityHelper.performSecurityChecks();
|
||||
String fingerPrint = await getDeviceFingerprint();
|
||||
dev = Platform.isAndroid ? 'android' : 'ios';
|
||||
var payload = {
|
||||
'id': box.read(BoxName.passengerID),
|
||||
'password': AK.passnpassenger,
|
||||
'aud': '${AK.allowed}$dev',
|
||||
'fingerPrint': fingerPrint
|
||||
};
|
||||
var response1 = await http.post(
|
||||
Uri.parse(AppLink.loginJwtWalletRider),
|
||||
body: payload,
|
||||
);
|
||||
Log.print('req: ${response1.request}');
|
||||
Log.print('response: ${response1.body}');
|
||||
Log.print('payload: ${payload}');
|
||||
Log.print('decodedResponse1: ${jsonDecode(response1.body)}');
|
||||
return jsonDecode(response1.body)['jwt'].toString();
|
||||
}
|
||||
|
||||
getJWT() async {
|
||||
print(Pasenger.pasengerpas);
|
||||
await SecurityHelper.performSecurityChecks();
|
||||
Log.print('firstTimeLoadKey: ${box.read(BoxName.firstTimeLoadKey)}');
|
||||
dev = Platform.isAndroid ? 'android' : 'ios';
|
||||
if (box.read(BoxName.firstTimeLoadKey).toString() != 'false') {
|
||||
var response0 = await http.post(
|
||||
Uri.parse(AppLink.loginFirstTime),
|
||||
body: {
|
||||
'id': box.read(BoxName.passengerID) ?? AK.newId,
|
||||
'password': AK.passnpassenger,
|
||||
'aud': '${AK.allowed}$dev',
|
||||
},
|
||||
);
|
||||
if (response0.statusCode == 200) {
|
||||
final decodedResponse1 = jsonDecode(response0.body);
|
||||
|
||||
final jwt = decodedResponse1['jwt'];
|
||||
final refreshToken = decodedResponse1['refresh_token'];
|
||||
box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
|
||||
// Sss.write(BoxName.jwt, jwt);
|
||||
await storage.write(key: BoxName.refreshToken, value: refreshToken);
|
||||
|
||||
await AppInitializer().getAIKey(Pasenger.keyOfApp);
|
||||
await AppInitializer().getAIKey(Pasenger.initializationVector);
|
||||
await Future.delayed(Duration.zero);
|
||||
await EncryptionHelper.initialize();
|
||||
|
||||
await AppInitializer().getAIKey(Pasenger.payMobApikey);
|
||||
await AppInitializer().getAIKey(Pasenger.FCM_PRIVATE_KEY);
|
||||
await AppInitializer().getKey();
|
||||
} else {}
|
||||
} else {
|
||||
await EncryptionHelper.initialize();
|
||||
|
||||
var payload = {
|
||||
'id': box.read(BoxName.passengerID),
|
||||
'password': AK.passnpassenger,
|
||||
'aud': '${AK.allowed}$dev',
|
||||
};
|
||||
var response1 = await http.post(
|
||||
Uri.parse(AppLink.loginJwtRider),
|
||||
body: payload,
|
||||
);
|
||||
Log.print('req: ${response1.request}');
|
||||
Log.print('response: ${response1.body}');
|
||||
Log.print('payload: ${payload}');
|
||||
Log.print('decodedResponse1: ${jsonDecode(response1.body)}');
|
||||
|
||||
if (response1.statusCode == 200) {
|
||||
final decodedResponse1 = jsonDecode(response1.body);
|
||||
Log.print('decodedResponse1: ${decodedResponse1}');
|
||||
|
||||
final jwt = decodedResponse1['jwt'];
|
||||
await box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
|
||||
|
||||
await AppInitializer().getKey();
|
||||
|
||||
final refreshToken = decodedResponse1['refresh_token'];
|
||||
await storage.write(key: BoxName.refreshToken, value: refreshToken);
|
||||
} else {}
|
||||
}
|
||||
}
|
||||
|
||||
loginUsingCredentials(String passengerID, email) async {
|
||||
isloading = true;
|
||||
update();
|
||||
bool isTokenExpired = JwtDecoder.isExpired(X
|
||||
.r(X.r(X.r(box.read(BoxName.jwt), cn), cC), cs)
|
||||
.toString()
|
||||
.split(AppInformation.addd)[0]);
|
||||
|
||||
if (isTokenExpired) {
|
||||
Log.print('isTokenExpired loginUsingCredentials: ${isTokenExpired}');
|
||||
await getJWT();
|
||||
}
|
||||
|
||||
var res =
|
||||
await CRUD().get(link: AppLink.loginFromGooglePassenger, payload: {
|
||||
'email': email.toString().contains('@')
|
||||
? encryptionHelper.encryptData(email)
|
||||
? EncryptionHelper.instance.encryptData(email)
|
||||
: email,
|
||||
'id': passengerID,
|
||||
"platform": Platform.isAndroid ? 'android' : 'ios',
|
||||
@@ -110,18 +215,22 @@ class LoginController extends GetxController {
|
||||
box.write(BoxName.validity, d['validity']);
|
||||
box.write(BoxName.isInstall, d['isInstall'] ?? 'none');
|
||||
box.write(BoxName.isGiftToken, d['isGiftToken'] ?? 'none');
|
||||
box.write(BoxName.firstTimeLoadKey, 'false');
|
||||
d['inviteCode'] != null
|
||||
? box.write(
|
||||
BoxName.inviteCode,
|
||||
encryptionHelper.decryptData(d['inviteCode'].toString()) ??
|
||||
EncryptionHelper.instance
|
||||
.decryptData(d['inviteCode'].toString()) ??
|
||||
'none')
|
||||
: null;
|
||||
|
||||
var token = await CRUD().get(link: AppLink.getTokens, payload: {
|
||||
'passengerID': box.read(BoxName.passengerID).toString()
|
||||
});
|
||||
var fingerPrint = await getDeviceFingerprint();
|
||||
await storage.write(key: BoxName.fingerPrint, value: fingerPrint);
|
||||
if (token != 'failure') {
|
||||
if (encryptionHelper.decryptData(
|
||||
if (EncryptionHelper.instance.decryptData(
|
||||
jsonDecode(token)['data'][0]['token'].toString()) !=
|
||||
box.read(BoxName.tokenFCM)) {
|
||||
MyDialog().getDialog('change device'.tr, 'token change'.tr,
|
||||
@@ -131,20 +240,23 @@ class LoginController extends GetxController {
|
||||
link: "${AppLink.server}/ride/firebase/add.php",
|
||||
payload: {
|
||||
'token': box.read(BoxName.tokenFCM),
|
||||
'passengerID': box.read(BoxName.passengerID).toString()
|
||||
'passengerID': box.read(BoxName.passengerID).toString(),
|
||||
'fingerPrint': (fingerPrint).toString()
|
||||
}),
|
||||
CRUD().post(
|
||||
link:
|
||||
"${AppLink.tripzAlexandriaServer}/ride/firebase/add.php",
|
||||
payload: {
|
||||
'token': box.read(BoxName.tokenFCM),
|
||||
'passengerID': box.read(BoxName.passengerID).toString()
|
||||
'passengerID': box.read(BoxName.passengerID).toString(),
|
||||
'fingerPrint': (fingerPrint).toString()
|
||||
}),
|
||||
CRUD().post(
|
||||
link: "${AppLink.tripzGizaServer}/ride/firebase/add.php",
|
||||
payload: {
|
||||
'token': box.read(BoxName.tokenFCM),
|
||||
'passengerID': box.read(BoxName.passengerID).toString()
|
||||
'passengerID': box.read(BoxName.passengerID).toString(),
|
||||
'fingerPrint': (fingerPrint).toString()
|
||||
}),
|
||||
];
|
||||
// cameras = await availableCameras();
|
||||
@@ -153,7 +265,7 @@ class LoginController extends GetxController {
|
||||
.sendNotificationToDriverMAP(
|
||||
'token change'.tr,
|
||||
'change device'.tr,
|
||||
encryptionHelper.decryptData(
|
||||
EncryptionHelper.instance.decryptData(
|
||||
jsonDecode(token)['data'][0]['token'].toString()),
|
||||
[],
|
||||
'cancel.wav',
|
||||
@@ -174,9 +286,7 @@ class LoginController extends GetxController {
|
||||
Get.offAll(() => const MapPagePassenger());
|
||||
},
|
||||
);
|
||||
} else {
|
||||
print('same');
|
||||
}
|
||||
} else {}
|
||||
} // Logging to check if inviteCode is written correctly
|
||||
|
||||
if (d['inviteCode'] != 'none' &&
|
||||
@@ -185,7 +295,7 @@ class LoginController extends GetxController {
|
||||
box.read(BoxName.isInstall).toString() != '1') {
|
||||
await CRUD()
|
||||
.post(link: AppLink.updatePassengersInvitation, payload: {
|
||||
"inviteCode": encryptionHelper
|
||||
"inviteCode": EncryptionHelper.instance
|
||||
.encryptData(box.read(BoxName.inviteCode).toString()),
|
||||
"passengerID": box.read(BoxName.passengerID).toString(),
|
||||
});
|
||||
@@ -198,7 +308,7 @@ class LoginController extends GetxController {
|
||||
try {
|
||||
CRUD().post(link: AppLink.addPassengersPromo, payload: {
|
||||
"promoCode":
|
||||
'S-${encryptionHelper.decryptData(box.read(BoxName.name)).toString().split(' ')[0]}',
|
||||
'S-${EncryptionHelper.instance.decryptData(box.read(BoxName.name)).toString().split(' ')[0]}',
|
||||
"amount": '25',
|
||||
"passengerID": box.read(BoxName.passengerID).toString(),
|
||||
"description": 'promo first'
|
||||
@@ -236,7 +346,7 @@ class LoginController extends GetxController {
|
||||
update();
|
||||
var res =
|
||||
await CRUD().get(link: AppLink.loginFromGooglePassenger, payload: {
|
||||
'email': encryptionHelper.encryptData(emailController.text),
|
||||
'email': EncryptionHelper.instance.encryptData(emailController.text),
|
||||
'id': passwordController.text
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user