Я изо всех сил пытаюсь заменить стратегию :password по умолчанию для драгоценного камня Padrino-Warden. Насколько я понимаю, мне нужно получить экземпляр менеджера для надзирателя, чтобы я мог установить стратегии по умолчанию, но я не уверен, как это сделать в файле app.rb.
Сейчас 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}
Если я настрою warden на config.ru, он установит правильную среду для warden, но тогда я подозреваю, что промежуточное программное обеспечение сеанса, предоставляемое Padrino, не работает вместе с Warden.