2010-09-16 57 views
0

當用戶嘗試通過此方法連接並失敗時。我如何redirect_to?提前致謝。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 

回答

0

在過去,我們已經取得了 authenticate一個 before_filter這將只是執行 authenticate_or_request_with_http_basic,然後有我們重定向/呈現發生在各自的行動。

我剛剛重讀了您的問題&代碼示例。你究竟發生了什麼?身份驗證失敗時重定向?

編輯:我從來沒有這樣做,但似乎試圖follow the docs可能是你最好的選擇,特別是「更先進的基本示例」。

我最終對基本身份驗證的內部工作原理不夠了解,但它引起了我的注意,因爲它也可能歸結爲Apache /(在此插入您的真棒Web服務器)配置。如果我錯了,肯定會有人糾正我。

+0

是的,基本上當它失敗時,它會轉到一個帶有文本的白頁。如果失敗,我怎麼才能回到根目錄。 – RoR 2010-09-16 01:55:44

+0

而我擁有的before_filter在我的管理員控制器中 – RoR 2010-09-16 01:56:45

相關問題