Как добавить пользовательскую стратегию аутентификации Devise/Warden для использования с ActiveAdmin?

Я пытаюсь создать систему единого входа, в которой куча приложений 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

person Ben    schedule 18.03.2015    source источник
comment
Хм... кажется, мне нужно сделать что-то вроде этого: 4trabes.com/2012/10/31/удаленная-аутентификация-с-устройством   -  person Ben    schedule 18.03.2015


Ответы (1)


Удалось заставить это работать, изучив структуру этого драгоценного камня:

https://github.com/AMekss/devise_custom_authenticatable

person Ben    schedule 19.03.2015