اذهب إلى المحتوى

السؤال

نشر

سلام عليكم.
أريد إقتراح لفكرة منع المستخدم من تسجيل الدخول لأكثر من جهازين في نفس الوقت أريده عن تسجيل دخوله التحقق من أن عدد الأجهزة ليس أكثر من 2 وإذا كانوا 2 يتم التحقق أن الجهاز الحالي موجود ضمنهم لإتمام اتسجيل الدخول ولكن العقبات كالتالي: 
1- يمكن أن يدخل المستخدم لجهازين في الوقت الحالي ويعمل على جهاز \وال الوقت ويترك الجهاز الآخر مدة طويلة حتى تنتهي ال session الخاصة بهذا الجهاز، هذا يعني أنه عندنا في قاعدة البيانات الجهاز مسجل الدخول ولكن ف الواقع لا.
2- إذا استعملت User-Agent header لجلب معرف للجهاز فهذه الطريقة لن تنجح طويلًا لأنه إذا تم تحديث المتصفح الخاص بالمستخدم سيتم تغيير User Agent.
3- عند تسجيل الدخول وكان تم التسجيل من قبل لجهازين أريد عرض صفحة بها الأجهزة التي تم تسجيل الدخول إليها ويمكنه تسجيل الخروج من واحد منهم (وليس الكل).

فهل هناك أي إقتراح؟ 

Recommended Posts

  • 0
نشر

تستطيع عمل ذلك من خلال تعريف table منفصل في حالة sql-db أو collection في حالة  (mongo)non-sql-db يحتوي على معرف المستخدم وال token وحالته status  كأن تكون بالقيمactive و expired . عندما يسجل المستخدم الدخول تقوم الواجهة الخلفية بالتحقق من أن عدد الtokens النشطة الخاصة بهذا المستخدم ليس أكثر من واحد. فإن تحقق الشرط تضيف token جديد له وتسجل الدخول وأن لم يتحقق ترجع له رسالة بأنه مسجل الدخول  لجهازين  أو أكثر. 

ولتحسين الاداء تستطيع إستعمال websockets لجعل الواجهة الخلفية تغير حالة ال token مثلاً الى expired عندما يغلق المستخدم الصفحة دون تسجيل الخروج.

  • 0
نشر

تستطيع الاعتماد على تقنية الـ "Session Token" كالتالي:

  • عند تسجيل الدخول الناجح، قم بإنشاء "Session Token" فريد للمستخدم.
  • واحتفظ بقائمة بجميع الـ "Session Token" المفعلة حاليًا للمستخدم، وتعتبر هذه القائمة قيد التحديث بناءًا على تسجيل الدخول وتسجيل الخروج.

ثم تحقق من عدد الأجهزة المتصلة:

  • عندما يحاول المستخدم تسجيل الدخول من جهاز جديد، قم بفحص عدد الـ "Session Token" المفعلة للمستخدم.
  • إذا كان عدد الـ "Session Token" أقل من أو يساوي 2، فاسمح بتسجيل الدخول الجديد وقم بإضافة "Session Token" جديدة للقائمة.
  • إذا كان عدد الـ "Session Token" أكثر من 2، فقم بعرض صفحة تعرض الأجهزة المتصلة وتسمح للمستخدم بتسجيل الخروج من إحدى الأجهزة للسماح بتسجيل الدخول الجديد.
  • عند تسجيل الخروج من جهاز، قم بإزالة "Session Token" المرتبطة به من القائمة.

بعد ذلك اضبط وقت الإنتهاء للـ "Session Token":

  • عند إنشاء "Session Token" جديدة، قم بتعيين وقت انتهاء لها بحيث تكون صالحة لفترة زمنية محددة.
  • عندما يصل وقت انتهاء الـ "Session Token"، قم بإزالتها من القائمة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...