Update: 2026-08-08 13:33:53

This commit is contained in:
Hamza-Ayed
2026-08-08 13:33:54 +03:00
parent fae0e4a38a
commit c8e8e481a6
7 changed files with 362 additions and 141 deletions
@@ -5,6 +5,7 @@ import 'package:siro_driver/print.dart';
import 'package:siro_driver/views/home/on_boarding_page.dart';
import 'package:siro_driver/views/widgets/error_snakbar.dart';
import 'package:siro_driver/controller/functions/country_logic.dart';
import 'package:siro_driver/controller/functions/package_info.dart';
import '../../../constant/box_name.dart';
import '../../../constant/links.dart';
@@ -66,13 +67,18 @@ class PhoneAuthHelper {
try {
final fixedPhone = CountryLogic.formatCurrentCountryPhone(phoneNumber);
Log.print('fixedPhone: $fixedPhone');
final fingerPrint = box.read(BoxName.deviceFingerprint)?.toString() ??
await DeviceHelper.getDeviceFingerprint();
final response = await CRUD().post(
link: _verifyOtpUrl,
payload: {
'phone_number': fixedPhone,
'token_code': otpCode,
'context': 'login',
'user_type': 'driver'
'user_type': 'driver',
// البصمة تُدمج داخل التوكن الذي يصدره السيرفر، وبدونها يُرفض
// كل طلب لاحق بـ 403 "Device verification required".
'fingerPrint': fingerPrint,
},
);
@@ -85,6 +91,14 @@ class PhoneAuthHelper {
box.write(BoxName.phoneDriver, phoneNumber);
box.write(BoxName.driverID, data['message']['driverID']);
// ✅ التحقق ينجح ⇒ السيرفر يصدر توكن driver كامل الصلاحيات.
// حفظه هنا هو ما يمنع بقاء توكن التسجيل مستعملاً بعد الدخول.
final issuedJwt = data['message']['jwt']?.toString();
if (issuedJwt != null && issuedJwt.isNotEmpty) {
await storage.write(key: BoxName.jwt, value: issuedJwt);
Log.print('🔑 تم حفظ توكن driver الصادر من التحقق بالـ OTP.');
}
if (isRegistered) {
// ✅ السائق مسجل مسبقًا - سجل دخوله واذهب إلى الصفحة الرئيسية
final driver = data['message']['driver'];