2010-09-16 7 views
0

Lorsqu'un utilisateur essaie de se connecter via cette méthode et qu'il échoue. Comment puis-je rediriger vers? Merci d'avance.Rails authenticate_or_request_with_http_basic

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    USER_NAME, PASSWORD = "admin", "admin" 
    helper_method :authenticate 

    private 
    def authenticate 
    begin 
     authenticate_or_request_with_http_basic do |user_name, password| 
     user_name == USER_NAME && password == PASSWORD 
     end 
    rescue 
     "HTTP Basic: Access denied" 
    else 

     redirect_to root_path 
    end 

    end 
end 

Répondre

0

Dans le passé, nous avons fait un authenticate before_filter qui vient effectuer le authenticate_or_request_with_http_basic, et alors nos réoriente/Renders se produire dans leurs actions respectives.

Je viens de relire votre question & exemple de code. Que cherches-tu exactement? Une redirection sur l'échec de l'authentification?

Edit: Je n'ai jamais fait cela, mais il semble que d'essayer de follow the docs pourrait être votre meilleur pari, en particulier, le "exemple de base plus avancé." En fin de compte, je ne sais pas assez sur les rouages ​​internes de base auth, mais il me frappe comme il pourrait aussi se résumer à une configuration Apache/(insérer votre serveur web génial ici). Quelqu'un va certainement me corriger si je me trompe.

+0

Eh oui, au fond quand il échoue, il va à une page blanche avec un texte. Comment l'obtenir pour revenir à la racine si elle échoue. – RoR

+0

Et le before_filter que j'ai est dans mon admin controller – RoR