2013-02-14 1 views
0

Я пытаюсь заменить стратегию по умолчанию: пароль для драгоценного камня Padrino-Warden. Как я это понимаю, мне нужно удержать экземпляр менеджера для начальника, поэтому я могу установить стратегии по умолчанию, но я не уверен, как это сделать в файле app.rb.Замените стратегию аутентификации по умолчанию в Padrino-Warden

Прямо сейчас app.rb выглядит так:

register Padrino::Warden 

Warden::Strategies.add(:udid) do 
    def valid? 
     puts "udid strat" 
     params[:udid] 
    end 

    def authenticate! 
     user = User.get(:udid => params[:udid]) 
     user.nil? ? fail!("Could not log in") : success!(user) 
    end 
end 

Warden::Manager.serialize_into_session do |user| 
    user.id 
end 

Warden::Manager.serialize_from_session do |id| 
    User.get(id) 
end 

use ::Warden::Manager do |manager| 
    manager.scope_defaults :default, 
     strategies: [:password], 
     action: 'sessions/unauthenticated' 
end 

Какой из них не работает. Надзиратель среда все еще выглядит как этот

Warden::Proxy:70352196940440 @config={:default_scope=>:default, :scope_defaults=>{}, :default_strategies=>{:_all=>[:password]}, :intercept_401=>true, :failure_app=>Dagis} 

Если настроить надзиратель в config.ru он установит правильную среду для надзирателя, но я подозреваю, что сессия промежуточного слой обеспечивается Padrino не очень хорошо работает вместе с Уорден.

ответ

2

При использовании стратегии вам необходимо проинструктировать менеджера по охране труда. Обновите ключ strategies, который вы передаете методу use, чтобы отразить, какие стратегии вы хотите включить, и порядок, в котором они должны запускаться. Вы можете сделать это:

use ::Warden::Manager do |manager| 
    manager.scope_defaults :default, 
    strategies: [:udid, :password], 
    action: 'sessions/unauthenticated' 
end 

Там куча примеров на Warden wiki on github

+0

Спасибо за ответ. В конце концов, проблема, похоже, заключалась в том, что у парижского надзирателя было слишком много предположений о конфигурации. Удалил его и использовал только Уорден, как шарм. –

Смежные вопросы