J'essaie d'ajouter une stratégie très simple à concevoir, et cela ne semble pas fonctionner. Voici le code que je suis en train d'utiliserComment ajouter une stratégie à Devise
#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 les params pour un paramètre « AUTO_LOGIN », et le cas échéant, trouver le premier utilisateur qu'il peut et les connecter. Je sautée mesures de sécurité entièrement pour faire fonctionner un cas de test de base. Lorsque j'essaie de me connecter à un contrôleur qui a un 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 mal?
Voir aussi les réponses ici: http://stackoverflow.com/questions/4223083/custom-authentication-strategy-for-devise – shawn42