المطوّرون 🔒 يعمل داخل متصفحك — لا تُرسل أي بيانات

فحص انتهاء صلاحية JWT

مطالبة exp ختم زمني يونكس، ولا تقول شيئًا للوهلة الأولى. الصق الرمز لتحوّلها هذه الصفحة إلى تاريخ، وإلى منطقة زمنية تعرفها، وإلى جملة واضحة.

رمز JWT
السرّ أو المفتاح العام
يُستخدم المفتاح داخل متصفحك ولا يُرسل إلى أي مكان.
بعد فك الترميز
الترويسة

          
        
الحمولة

        
التوقيع

وقّع رمزًا خاصًا بك لاختبار نقطة نهاية. كل شيء يُحسب داخل هذه الصفحة.

مفتاح التوقيع

يبقى المفتاح والرمز الناتج داخل متصفحك: لا يُرسل أي منهما إلى أي مكان، ولا يظهران في رابط المشاركة.

اعرف متى تنتهي صلاحية رمز JSON Web Token

نادرًا ما يبقى الطلب المرفوض لغزًا طويلًا: أول ما يستحق النظر هو هل كان الرمز حيًّا حين وصل. المشكلة أن الجواب مخزَّن بصيغة مثل 1790208000، ولا أحد يقرأ ذلك بنظرة واحدة. الصق الرمز، فيقول السطر فوق الترويسة المفكوكة الجواب بالكلمات — انتهى قبل يومين، ينتهي خلال ثمانٍ وخمسين دقيقة، ليس صالحًا بعد — بينما يعطي جدول المطالبات التاريخ الكامل بمنطقتك.

كل شيء يُفَكّ داخل الصفحة. وهذا مهم هنا لأن الرمز اعتماد حيّ: من يملك رمزًا صالحًا يستطيع غالبًا أن يتصرف بصفة صاحبه حتى اللحظة التي تحدّثك عنها هذه الصفحة. ولا شيء مما تلصقه يُرفع أو يُسجَّل أو يُحفظ.

المطالبات الثلاث التي تحمل الوقت

المطالبةالمعنىكيف تبدو القيمة الخاطئة
expيتوقف قبول الرمز عند هذه اللحظةخطأ 401 يظهر بعد كل تسجيل دخول بمدة ثابتة
nbfلا يجوز استعماله قبل هذه اللحظةرمز جديد تمامًا يُرفض في ثوانيه الأولى
iatوقت الإصدارتستعمله قواعد العمر الأقصى، فيفشل رمز قديم رغم أنه لم ينتهِ

الثلاث كلها ثوانٍ منذ حقبة يونكس، لا أجزاء من الثانية — فـ JWT كُتب يدويًا بـ Date.now() في جافاسكربت يحطّ في سنة 58000 ولا يقبله أحد. وإن أردت تحويل أحد هذه الأرقام وحده، يجري محوّل الختم الزمني الحساب نفسه في الاتجاهين.

منتهٍ أم مجرد غير متزامن؟

نادرًا ما يتفق جهازان على الثانية، لذا يترك كل متحقِّق عاقل هامشًا؛ من ثلاثين إلى ستين ثانية هو المعتاد. هذا التسامح هو سبب أن يبدو رمز منتهيًا هنا بثوانٍ قليلة ومع ذلك يُقبل، وأن يُرفض رمز صادر عن خادم ساعته متقدمة بوصفه ليس صالحًا بعد في لحظاته الأولى. وإذا فشل رمز بعيدًا عن هذه النافذة، فالساعة ليست المشكلة.

النصف الآخر من الجواب هو التوقيع. قد يحمل رمز منتهٍ توقيعًا سليمًا تمامًا، وقد يحمل رمز مزوَّر exp بعيدة في المستقبل؛ والسؤالان مستقلان. وهذه الصفحة تجيب عنهما معًا: تحقّق من التوقيع بالمفتاح أسفل الرمز، وستظل النتيجة المنتهية مذكورة إلى جانب التوقيع الصالح.

كم ينبغي أن يعيش الرمز

قليلًا، لأن الرمز لا يُستردّ. فما إن يُوقَّع حتى يصير من يملكه هو ذلك المستخدم إلى أن تمضي exp؛ ورمز وصول يعيش خمس عشرة دقيقة يحدّ من ضرر التسريب بما لا يفعله رمز يعيش ثلاثين يومًا. والترتيب المعتاد يجمع رمز وصول قصيرًا مع رمز تجديد طويل يُحفظ في الخادم ويمكن إبطاله — وهي المقايضة نفسها التي تتناولها المقارنة مع كعكات الجلسة.

وإن كنت تختبر هذا السلوك بدل أن تشخّصه، فإن مولّد JWT يوقّع رمزًا تنتهي صلاحيته بعد خمس دقائق، أو رمزًا بلا انتهاء صلاحية أصلًا، لترى كيف تتصرف شيفرتك أنت.

أدلة ذات صلة