إدارة المستخدمين عبر العديد من تطبيقات API عديمة الحالة

2

نريد أن نجعل API الخاص بنا عديم الجنسية.

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

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

على جانب الطرف الثالث (موفر الرمز المميز) ، هذا الرمز المميز صالح لفترة أطول (على سبيل المثال: شهر من جانبهم بغض النظر عن الاستخدام مقابل 20 دقيقة من وقت الخمول على جانبنا).

بمعنى أن كل استخدام لهذا الرمز المميز يقوم بتحديث الطابع الزمني في ذاكرة التطبيق.

كجزء من جعل API الخاص بنا عديم الجنسية ، واجهت مشكلة:

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

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

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

آمل أن يكون تفسيري واضحًا بما فيه الكفاية.

أسئلتي هي:

  1. ما هي أفضل ممارسة لهذه المشكلة؟
  2. أين يمكنني العثور على معلومات مفيدة بخصوص إدارة المستخدمين عبر تطبيقات متعددة؟ أعتقد أنني أعاني من الكلمات الرئيسية في هذه الحالة.

شكرا لك مقدما

1 إجابة

0

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

لذلك ، قد يكون الحل الآخر الذي يمكنني تقديمه هو استخدام الأداة التي توفر مشاركة الذاكرة بين العمليات والآلات. على سبيل المثال ، يمكنك استخدام Hazelcast . من السهل جدًا بدء الأداة باستخدام واجهة برمجة تطبيقات سهلة الاستخدام للغاية. على سبيل المثال ، إذا قمت بتخزين التعيين من الرمز المميز إلى الطابع الزمني في الخريطة الآن ، فإن الشيء الوحيد الذي عليك تغييره هو المكان الذي تقوم فيه بإنشاء الخريطة. استخدم مصنع خرائط Hazelcast بدلاً من new HashMap<>() وسيتم توزيع الرموز الخاصة بك بطريقة سحرية بين تطبيقاتك.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام