J'essaie d'ajouter une stratégie très simple à concevoir, et ça ne semble pas fonctionner. Voici le code que j'essaie d'utiliser
#config/initializers/devise.rb
Devise.setup do |config|
config.orm = :mongo_mapper
config.warden do |manager|
manager.strategies.add(:auto_login_strategy) do
def valid?
params[:auto_login]
end
def authenticate!
u = User.find(:first)
u.nil? ? fail!("No created users") : success!(u)
end
end
manager.default_strategies(:scope=>:user).unshift :auto_login_strategy
end
end
Le code est censé vérifier la présence d'un paramètre 'auto_login' dans les paramètres, et s'il est présent, trouver le premier utilisateur qu'il peut et le connecter. J'ai entièrement ignoré les mesures de sécurité pour ne faire fonctionner qu'un test de base. Lorsque j'essaie de me connecter à un contrôleur qui a un paramètre before_filter authenticate_user!
(c'est-à-dire localhost:3000/test?auto_login=true
), il ne peut pas me connecter et me redirige vers la page de connexion. Qu'est-ce que je fais de mal ?