Update: 2026-06-25 02:55:24
This commit is contained in:
@@ -97,6 +97,16 @@ class CRUD {
|
||||
return box.read(BoxName.deviceFingerprint)?.toString() ?? '';
|
||||
}
|
||||
|
||||
String _getJwt() {
|
||||
try {
|
||||
final jwt = box.read(BoxName.jwt);
|
||||
if (jwt == null || jwt.toString().isEmpty) return '';
|
||||
return r(jwt).toString().split(Env.addd)[0];
|
||||
} catch (_) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// _makeRequest — دالة مركزية لكل الطلبات
|
||||
// ───────────────────────────────────────────────────────────────
|
||||
@@ -207,14 +217,14 @@ class CRUD {
|
||||
required String link,
|
||||
Map<String, dynamic>? payload,
|
||||
}) async {
|
||||
String token = r(box.read(BoxName.jwt)).toString().split(Env.addd)[0];
|
||||
String token = _getJwt();
|
||||
|
||||
// فحص صلاحية التوكن قبل الإرسال — تجنب طلب مضمون الرفض
|
||||
if (!_isJwtValid(token) && !_isRefreshingJWT) {
|
||||
_isRefreshingJWT = true;
|
||||
try {
|
||||
await Get.put(LoginDriverController()).getJWT();
|
||||
token = r(box.read(BoxName.jwt)).toString().split(Env.addd)[0];
|
||||
token = _getJwt();
|
||||
} finally {
|
||||
_isRefreshingJWT = false;
|
||||
}
|
||||
@@ -239,12 +249,12 @@ class CRUD {
|
||||
}) async {
|
||||
try {
|
||||
// فحص صلاحية التوكن قبل الإرسال
|
||||
String token = r(box.read(BoxName.jwt)).toString().split(Env.addd)[0];
|
||||
String token = _getJwt();
|
||||
if (!_isJwtValid(token) && !_isRefreshingJWT) {
|
||||
_isRefreshingJWT = true;
|
||||
try {
|
||||
await Get.put(LoginDriverController()).getJWT();
|
||||
token = r(box.read(BoxName.jwt)).toString().split(Env.addd)[0];
|
||||
token = _getJwt();
|
||||
} finally {
|
||||
_isRefreshingJWT = false;
|
||||
}
|
||||
@@ -557,11 +567,11 @@ class CRUD {
|
||||
// ── sendEmail — إصلاح: استخدام r() بدل X.r() القديم ─────────
|
||||
Future<void> sendEmail(String link, Map<String, String>? payload) async {
|
||||
// r() هي نفس دالة فك التشفير الثلاثي المختصرة
|
||||
String token = r(box.read(BoxName.jwt)).toString().split(Env.addd)[0];
|
||||
String token = _getJwt();
|
||||
|
||||
if (!_isJwtValid(token)) {
|
||||
await LoginDriverController().getJWT();
|
||||
token = r(box.read(BoxName.jwt)).toString().split(Env.addd)[0];
|
||||
token = _getJwt();
|
||||
}
|
||||
|
||||
final headers = {
|
||||
|
||||
Reference in New Issue
Block a user