Я пытаюсь создать систему единого входа, в которой куча приложений Rails 4 в разных поддоменах использует общий файл cookie. У меня есть 4 приложения, выполняющие аутентификацию через волшебный камень, и 2 приложения, использующие ActiveAdmin и Devise.
4 приложения, использующие Sorcery, работают должным образом, я могу получить успешно зарегистрированного пользователя для доступа ко всем 4 различным приложениям, используя один и тот же файл cookie сеанса.
У меня проблемы с двумя приложениями Devise/ActiveAdmin. Я добавил пользовательскую стратегию аутентификации Warden и настроил Devise для ее использования. Но я не думаю, что эта стратегия используется, потому что я продолжаю получать 401 несанкционированную ошибку и любые операторы ввода / регистрации в аутентификации! метод ниже никогда не видел. Кто-нибудь с предыдущим опытом делает это? Или, может быть, какая-то помощь в отслеживании того, где происходят шаги аутентификации, чтобы я мог попытаться добавить ведение журнала?
Warden::Strategies.add(:gc_auth) do
def valid?
true
end
def authenticate!
user = AdminUser.find_by_uuid(session[:user_uuid])
user ? success!(user) : fail!("Not signed in")
end
end
config.warden do |manager|
manager.default_strategies.unshift :gc_auth
end