Update: 2026-08-02 18:28:40
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
// =======================================================================
|
||||
|
||||
Reference in New Issue
Block a user