Update: 2026-08-02 18:28:40

This commit is contained in:
Hamza-Ayed
2026-08-02 18:28:40 +03:00
parent 03a21aa95d
commit 02e652a786
9 changed files with 98 additions and 9 deletions
+18 -3
View File
@@ -284,6 +284,16 @@ class CRUD {
// التغيير: إضافة X-Device-FP header
// 3 headers معاً: JWT + HMAC + FP
// ═══════════════════════════════════════════════════════════════
/// توكن المحفظة صار يُخزَّن ويُعاد استخدامه. لو رفضه السيرفر (توكن
/// مُلغى أو تغيّر سرّ التوقيع) نمسح النسخة المخزّنة كي يُطلب توكن
/// جديد في المحاولة التالية بدل أن نعلق على توكن ميت.
void _invalidateWalletJwtIfRejected(dynamic result) {
if (result == 'token_expired') {
Log.print('🗑️ توكن المحفظة مرفوض — مسح النسخة المخزّنة.');
box.remove(BoxName.walletJwt);
}
}
Future<dynamic> postWallet({
required String link,
Map<String, dynamic>? payload,
@@ -297,11 +307,13 @@ class CRUD {
'X-HMAC-Auth': hmac.toString(),
'X-Device-FP': _getFpHeader(),
};
Log.print('headers: $headers');
Log.print('payload: $payload');
Log.print('link: $link');
return await _makeRequest(link: link, payload: payload, headers: headers);
final result =
await _makeRequest(link: link, payload: payload, headers: headers);
_invalidateWalletJwtIfRejected(result);
return result;
}
Future<dynamic> getWallet({
@@ -318,7 +330,10 @@ class CRUD {
'X-Device-FP': _getFpHeader(),
};
return await _makeRequest(link: link, payload: payload, headers: headers);
final result =
await _makeRequest(link: link, payload: payload, headers: headers);
_invalidateWalletJwtIfRejected(result);
return result;
}
// =======================================================================