تسجيل الدخول وعمر الجلسة: سلسلة المفاتيح والنبضة ومهلة العمل دون اتصال

يُفتح تطبيق Senzoukria المكتبي ببريد حساب الويب وكلمة مروره. ويحيا رمز الجلسة خمس عشرة دقيقة، وتجدّده نبضة (heartbeat) كل خمس دقائق؛ وبعد ثلاثين دقيقة بلا تجديد ناجح يسجّل التطبيق الخروج.

Senzoukria · التوثيق · آخر تحديث: سبتمبر 2026


أين تجده

أين
Sz menu → Account؛ وكل مسار محمي يعيد التوجيه إليها حين لا توجد جلسة
بيانات الاعتماد
خيار "Save my credentials (OS keychain)" مفعَّل افتراضيًّا؛ وتذهب كلمة المرور إلى مخزن اعتماد نظام التشغيل، لا إلى ملف أبدًا
الرمز
عمره خمس عشرة دقيقة، ونبضة كل خمس دقائق، وإعادة محاولة كل ستين ثانية، وخروج بعد ثلاثين دقيقة بلا تجديد

ما الذي يفعله

يطلب نموذج الدخول Email وPassword ويعرض الملاحظة: "The app stays locked until you sign in. Use the email and password of your Senzoukria web account — signing in on the website does not unlock the desktop app." وعند أول تشغيل على الإطلاق، قبل وجود أي جلسة، تعرض بطاقة ترحيب "Sign up on the web" و"I already have an account".

وحين تكون بيانات الاعتماد محفوظة، يُملأ النموذج مسبقًا من سلسلة المفاتيح ويُرسَل مرة واحدة تلقائيًّا عند أول تركيب للعملية. وبعد Sign out يُملأ النموذج مسبقًا من جديد لكنه ينتظر نقرة، فلا يُلغي الدخولُ التلقائي تسجيلَ الخروج. والدخول التلقائي الفاشل يُبقي بيانات الاعتماد المحفوظة: فانقطاع شبكة واحد يجب ألّا يمحو تسجيل دخول محفوظًا.

دورة حياة الجلسة

التوقيتات والقواعد كما قُرئت من شيفرة النبضة
القاعدةالقيمةالأثر
عمر الرمزخمس عشرة دقيقةينتهي رمز JWT في الخادم؛ والتجديد مهمة النبضة
فاصل النبضةخمس دقائقتجدّد الرمز وتعيد فحص الرخصة والاشتراك والجهاز
إعادة المحاولة بعد إخفاق مؤقتستون ثانيةتُعاد محاولة أخطاء الشبكة و429 و503؛ وهي لا تصفّر ساعة المهلة أبدًا
الحد الأقصى بلا تجديدثلاثون دقيقةبعدها يسجّل التطبيق الخروج محليًّا
الرفض النهائيHTTP 4xx عدا 408 و425 و429خروج فوري؛ ولا تُحاوَل إعادة الدخول بكلمة المرور، فلا يُعاد إنشاء جهاز مسحوب الصلاحية
الاستيقاظتركيز النافذة، وحدث العودة إلى الاتصال، وظهور اللسانيُطلق نبضة مستحقّة دون إضافة طلبات حين تكون الجلسة حديثة
زر Refreshصفحة Accountينفّذ نبضة واحدة يدويًّا: "Renew the session token via heartbeat"

كيف تستعمله

أدخل بريد حساب الويب وكلمة مروره وأبقِ المربّع مفعَّلًا إن كان هذا جهازك. ورابط "Forgot password? Signed up with Google?" يفتح الموقع: فحساب Google لا كلمة مرور له حتى تُعيَّن هناك، ولا يستطيع التطبيق تسجيل الدخول بـ Google مباشرة.

وتسجيل الخروج من صفحة Account ينهي الجلسة لكنه يُبقي مدخل سلسلة المفاتيح؛ فأزِل التأشير عن المربّع عند الدخول التالي لمسحه. ويقول سطر التغذية الراجعة: "Logged out — sign in below to restore access."

الحدود والمزالق

رسائل الخطأ ومعانيها:

  • "Invalid email or password." — رمز INVALID_CREDENTIALS من الخادم.
  • "This account signs in with Google. Use « Forgot password? » below to set a password, then sign in here."
  • "A PRO subscription is required to use the desktop app." و"Your subscription has expired." — تُفحص الرخصة عند الدخول وعند كل نبضة.
  • "This license is already in use on the maximum number of machines." — حرّر خانة من صفحة الأجهزة في الموقع.
  • "Account temporarily locked. Try again in a few minutes." — بعد إخفاقات متكررة.
  • خطأ الشبكة يُبقي كلمة المرور نفسها صالحة؛ وتقول الرسالة ألّا تعيد تعيينها.
  • وإذا أخفقت الكتابة في سلسلة المفاتيح، يسجّل التطبيق دخولك مع ذلك ويعرض الخطأ الحقيقي بدل التظاهر بأن بيانات الاعتماد حُفظت.

هذه الصفحة بلغات أخرى

أسئلة شائعة

لماذا سُجّل خروجي بعد عمل دون اتصال؟
تحتاج الجلسة نبضة ناجحة واحدة كل ثلاثين دقيقة. وبلا شبكة مدة أطول من ذلك يسجّل التطبيق الخروج محليًّا؛ فسجّل الدخول ثانية حين تعود إلى الاتصال.
هل يخزّن التطبيق كلمة مروري في ملف؟
لا. فمع تفعيل "Save my credentials" تذهب كلمة المرور إلى سلسلة مفاتيح نظام التشغيل (Credential Manager أو Keychain أو Secret Service). أما رموز الجلسة فيتولاها جانب Rust.
سجّلت الدخول في senzoukria.com، فلماذا ما زال التطبيق المكتبي مقفلًا؟
جلسة الموقع وجلسة التطبيق المكتبي منفصلتان. استعمل البريد وكلمة المرور نفسيهما في نموذج الدخول داخل التطبيق.

اقرأ أيضًا