"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لقد انتهت جلستك !!

لقد انتهت جلستك !!

تم النشر بتاريخ 2024-11-08
تصفح:820

Your Session has Expired !!

حسنًا، نتحدث اليوم عن مفهوم "انتهاء الجلسة"، خاصة عند استخدام NextAuth.js في مشروعك. افهم بلغة بسيطة وودية، حتى لا يكون هناك أي التباس. ,

لذا، دعونا أولاً نفهم معنى الخطأ "انتهت صلاحية جلستك". هذا خطأ متعلق بالمصادقة

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

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

إذنًا مؤقتًا

، والذي يمكن أن تنتهي صلاحيته.

, , كيف تعمل جلسة NextAuth mein؟ , الآن إذا قمنا بتنفيذ NextAuth.js، فهناك بعض القواعد هناك أيضًا. عندما يقوم مستخدم بتسجيل الدخول، يقوم NextAuth بتتبع هوية المستخدم باستخدام JWT (JSON Web Tokens)

أو
ملفات تعريف الارتباط للجلسة

. , , ,

JWT

هو رمز مميز يتم إرساله لترميز بيانات اعتماد المستخدم، ويتم إرساله مع كل طلب للتحقق مما إذا كان المستخدم صالحًا أم لا. , يتم تخزين ملفات تعريف الارتباط للجلسة في المتصفح، والذي من خلاله تعرف الواجهة الخلفية المستخدم الذي قام بتسجيل الدخول حاليًا. , ولكن، لديهم وقت انتهاء الصلاحية

، والذي قمت بتعيينه من خلال
    التكوين
  • . يحب: , تصدير خيارات المصادقة الثابتة = { حصة: { الإستراتيجية: "jwt"، // JWT أو النهج القائم على الجلسة الحد الأقصى للعمر: 30 * 60، // مهلة الجلسة 30 دقيقة , // تم ذكر موفري المصادقة الآخرين هنا , ,
  • هنا maxAge يعني أن الجلسة ستبقى نشطة لمدة 30 دقيقة فقط. إذا اتخذ المستخدم أي إجراء (مثل تحديث الصفحة أو أي طلب) بعد 30 دقيقة، فستنتهي الجلسة وسيتعين على المستخدم تسجيل الدخول مرة أخرى.
  • , , طريقة لتجنب انتهاء صلاحية الجلسة , , , التحديث الصامت: يمكنك تنفيذ
  • رمز التحديث
، الذي يقوم بتحديث الجلسة بصمت في الخلفية، لذلك لا يتعين على المستخدم تسجيل الدخول يدويًا في كل مرة.

, على سبيل المثال، في NextAuth، يمكنك إجراء استقصاء الجلسة بحيث يتم تحديث الجلسة تلقائيًا: ,
استخدام الجلسة({ المطلوب: صحيح، على غير مصدق () { تسجيل الدخول()؛ // إعادة التوجيه إلى صفحة تسجيل الدخول في حالة انتهاء صلاحية الجلسة , , , ,

export const authOptions = {
  session: {
    strategy: "jwt", // JWT ya session-based approach
    maxAge: 30 * 60, // 30 minutes ka session timeout
  },
  // baaki authentication providers yahan mention karte hain
}
البقاء مسجل الدخول

: تمنح بعض التطبيقات للمستخدم خيار "البقاء مسجل الدخول"، مما يؤدي إلى تمديد وقت انتهاء الجلسة. يمكن القيام بذلك باستخدام

تدوير الرمز المميز
، حيث يتم الحصول على رمز مميز جديد عند كل طلب.

  1. آلية تسجيل الخروج التلقائي: في بعض الحالات، لأسباب أمنية، تسمح التطبيقات عمدًا بانتهاء الجلسة مبكرًا. كما هو الحال في التطبيقات المصرفية، ستلاحظ أنه إذا كنت غير نشط لبعض الوقت، فسيتم تسجيل الخروج من الجلسة. يمكنك أيضًا إضافة هذا إلى تكوين NextAuth إذا كنت تريد الحفاظ على مستوى عالٍ من الأمان.
, , , سيناريو الحياة الواقعية في التطبيقات: ,

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

. لكن بعض التطبيقات الحساسة مثل البريد الإلكتروني أو التطبيقات المصرفية يجب أن تفرض تسجيل الخروج
   useSession({
     required: true,
     onUnauthenticated() {
       signIn(); // Redirect to login page agar session expire ho jaaye
     },
   });
,
    إذن أيها الأصدقاء، هذا هو الأساس الكامل لانتهاء صلاحية الجلسة، وكيفية تعامل NextAuth.js معها في مشروعك. قد يبدو هذا المفهوم مربكًا في البداية، لكن عند تطبيقه على أرض الواقع، يصبح كل شيء واضحًا تدريجيًا. إذا كان لديك أي شك وتريد أن تعرف بالتفصيل عن أي جزء محدد، فلا تتردد في السؤال! , , ,
بيان الافراج تم نشر هذه المقالة على: https://dev.to/shanu001x/your-session-has-expired--3ko3?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3