Пользовательская стратегия аутентификации для разработки

Мне нужно написать собственную стратегию аутентификации для https://github.com/plataformatec/devise, но нет ', кажется, нет никаких документов. Как это делается?


person opsb    schedule 19.11.2010    source источник


Ответы (1)


Я нашел этот очень полезный фрагмент в эта тема в группе разработчиков Google

инициализаторы/some_initializer.rb:

Warden::Strategies.add(:custom_strategy_name) do 
  def valid? 
    # code here to check whether to try and authenticate using this strategy; 
    return true/false 
  end 

  def authenticate! 
    # code here for doing authentication; 
    # if successful, call  
    success!(resource) # where resource is the whatever you've authenticated, e.g. user;
    # if fail, call 
    fail!(message) # where message is the failure message 
  end 
end 

добавьте следующее в initializers/devise.rb

  config.warden do |manager| 
     manager.default_strategies.unshift :custom_strategy_name 
  end 
person opsb    schedule 19.11.2010
comment
спасибо, очень полезно, я использовал его для аутентификации пользователей joomla моего старого сайта :-) - person simo; 20.12.2012
comment
Очень полезный ответ, хотя ссылка не работает. Не могли бы вы исправить это? - person mrzasa; 23.01.2013
comment
Я настоятельно рекомендую использовать DatabaseAuthenticable в качестве шаблона. при реализации собственных стратегий, иначе могут возникнуть проблемы с неработающим запоминаемым, настройка которого выполняется в его вызове проверить. - person Gabe Martin-Dempesy; 27.02.2014