Совместное использование сеанса между поддоменами, разработка аутентификации Завершено 401 Несанкционировано

У меня есть 2 приложения ruby ​​rails, каждое из которых имеет свой гениальный элемент для аутентификации, моя цель - реализовать простой SSO (единый выход) с использованием общих сеансов.

один из них с public.admin.com а другой с private.admin.com Я использую следующие конфигурации:

session_store.rb

Rails.application.config.session_store :cookie_store, key: '_shared_admin_session', domain: '.admin.com', tld_length: 2

конфиг /secrets.yml

Я тоже использую то же самое secret_key_base значение в обоих приложениях

devise.rb

config.stretches = 1

config.pepper = ''

application.rb

config.action_dispatch.cookies_serializer = :hybrid

Я могу войти для одного из них, и сессия открыта, как только я открываю другой домен Completed 401 Unauthorized возвращается, и открытая сессия закрывается и выходит из первого домена.

Я пробовал с использованием domain: 'admin.com', domain: :all,а также ..session_store :redis_store.., но результат всегда один и тот же.

Может кто-нибудь, пожалуйста, помогите мне найти проблему или предложить лучшее решение, я буду благодарен.

2 ответа

Если вы хотите разделить сессию между доменами, вам нужно отредактировать файл config/initializers/session_store.rb так, чтобы он выглядел следующим образом:

APPNAMEGOESHERE::Application.config.session_store :cookie_store, :key => '_tourlyapp_session', :domain => "your_domain_name.com"

Хитрость здесь в том, :domain вариант. Это устанавливает уровень TLD (домен верхнего уровня) и сообщает Rails, как долго домен. Здесь вы должны следить за тем, чтобы, если вы установите domain: :all Например, рекомендуется в некоторых местах, он просто не будет работать, если вы не используете localhost.: по умолчанию длина TLD равна 1, что означает, что если вы тестируете с помощью Pow (myapp.dev), оно также не будет работать, поскольку это TLD длины 2.

Я надеюсь, что это поможет вам

Я нашел проблему, это было просто.

проблема была в использовании 2 разных БД, после объединения административных таблиц все работало нормально.

Другие вопросы по тегам