كيف يمكنني مشاركة جلسات المستخدم عبر مجالات متعددة باستخدام ريلز؟

StackOverflow https://stackoverflow.com/questions/274384

سؤال

هل هناك أي شخص على علم بأي جواهر أو برامج تعليمية أو حلول تمكن المستخدم من تسجيل الدخول إلى موقع ويب في مجال واحد ومنحه الوصول تلقائيًا إلى مجالات الشركاء الأخرى في نفس الجلسة؟

لدي تطبيقان من تطبيقات Rails قيد التشغيل، دعنا نسميهما App-A وApp-B.يحتوي App-A على قاعدة بيانات مرتبطة به، مما يعمل على تشغيل التسجيل وتسجيل الدخول على App-A.com.أود الآن منح جميع هؤلاء المستخدمين الذين لديهم حسابات App-A.com إمكانية الوصول إلى App-B.com، دون مطالبتهم بإعادة التسجيل أو تسجيل الدخول يدويًا إلى App-B.com بشكل منفصل.

شكرا مقدما على أي مساعدة!--علامة

هل كانت مفيدة؟

المحلول

يمكنك ضبط نفس session_key في كلا التطبيقين.في بيئة appA.rb قم بتغيير session_key، مثل هذا

Rails::Initializer.run do |config|
   ...  
 config.action_controller.session = {
   :session_key => '_portal_session',
   :secret      => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
  }
  ...
end

افعل نفس الشيء في AppB.(تذكر أن تستخدم نفس السر)

الآن لديك جلسات مشتركة.لنفترض أنك تستخدم Restfull_authentication، الذي يقوم بتعيين متغير جلسة يسمى معرف المستخدم.عند المصادقة في appA، فإنه يقوم بتعيين user_id في الجلسة.الآن، في appB عليك فقط التحقق من وجود user_id في الجلسة.

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

نصائح أخرى

إذا كنت ترغب في إنشاء واحد حل علامة على للتطبيقات الخاصة بك ثم أوصي أن نلقي نظرة على الموقع RubyCAS الحل. ويمكن استخدامه أيضا لتوفير خدمة الدخول الموحد للتطبيقات غير القضبان الأخرى وكذلك يمكنك دمج المصادقة مع LDAP أو غيرهم من مقدمي المصادقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top