كيف يمكنني مشاركة جلسات المستخدم عبر مجالات متعددة باستخدام ريلز؟
-
07-07-2019 - |
سؤال
هل هناك أي شخص على علم بأي جواهر أو برامج تعليمية أو حلول تمكن المستخدم من تسجيل الدخول إلى موقع ويب في مجال واحد ومنحه الوصول تلقائيًا إلى مجالات الشركاء الأخرى في نفس الجلسة؟
لدي تطبيقان من تطبيقات 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 أو غيرهم من مقدمي المصادقة.