2013-07-27 99 views
0

我有一個登錄頁面,用戶輸入用戶名和密碼,然後用戶重定向到他的帳戶頁面,但是當我按下後退按鈕時,它將我帶回登錄頁面。我如何防止發生這種情況。如何防止後退按鈕到用戶登錄後的最後一頁

+0

添加,只是檢查,如果用戶沒有登錄。如果是的話,重定向到其他頁面。隨着後退按鈕的擺弄,解決這個問題更容易。 – KarelG

回答

0

如果你是在設計,檢查你的控制器

before_filter :authenticate_user! 

通常對已經登錄的用戶的背部動作不要把他帶回形式。

+0

感謝您的迴應,即使他按下瀏覽器上的按鈕也不起作用,所以請幫助我 –

0

authenticate_user!是一種設計方法。如果您沒有使用設計,那麼您可以創建附加before_filter到您的登錄操作並重定向用戶,如果用戶是signed_in。

0

我用一個簡單的signed_in?在這使得我的登錄頁面的新操作方法,它看起來大致是這樣的:

if signed_in? 
     redirect_to root_path 
    end 

    def signed_in? 
     !current_user.nil? 
    end 
0

當用戶點擊後退按鈕,它不會重新運行服務器代碼生成登錄頁面,它只是顯示緩存的瀏覽器版本,所以你可以嘗試,並告訴瀏覽器不緩存登錄頁面,然後添加另外的服務器端的檢查(如其他人所示)

添加到您的ApplicationController

def no_browser_cache 
    response.headers["Last-Modified"] = Time.now.httpdate 
    # response.headers["Expires"] = 0 -> this line kills heroku deployments 
    # HTTP 1.0 
    response.headers["Pragma"] = "no-cache" 
    # HTTP 1.1 'pre-check=0, post-check=0' (IE specific) 
    response.headers["Cache-Control"] = 'no-store, no-cache, must-revalidate, max-age=0, pre-check=0, post-check=0' 
end 

然後在你的登錄控制器中放入一個before_filter [R執行該方法

然後訪問登錄頁面,當你「已經登錄」服務器端檢查

+0

編號。它不適合我。 – Jaswinder

相關問題