0
當我嘗試將用戶重定向到請求的路徑,他在登錄後,我得到這個錯誤此網頁有重定向循環 - 設計,Rails的
讓當他點擊「我的帳戶設置一個鏈接的說。 「這是安全的,他被重定向到登錄頁面進行身份驗證,然後返回到」我的帳戶設置「頁面,如果身份驗證成功。
通過它創建了一個循環的錯誤,這是由於我的理解一個事實,即他被重定向形式登錄到比需要再次登錄頁面(因爲他已經athenticated)的網頁...
現在,我試圖做來解決這個問題如下:
在ApplicationController
before_action :store_location
def store_location
# store last url - this is needed for post-login redirect to whatever the user last visited.
return unless request.get?
if (request.path != "https://stackoverflow.com/users/sign_in" &&
request.path != "https://stackoverflow.com/users/sign_up" &&
request.path != "https://stackoverflow.com/users/password/new" &&
request.path != "https://stackoverflow.com/users/password/edit" &&
request.path != "https://stackoverflow.com/users/confirmation" &&
request.path != "https://stackoverflow.com/users/sign_out" &&
!request.xhr?) # don't store ajax calls
session[:previous_url] = request.fullpath
end
end
def after_sign_in_path_for(resource)
session.delete(:previous_url) || root_path
end
def logged_in?
current_user ? true : false
end
在PagesController
before_action :authenticate_user!, only: [:show], :unless => :logged_in?
這樣,認證成功後,我們跳過:authenticate_user!直接去渲染顯示視圖(而不是進入登錄/重定向邏輯...)
不幸的是,它沒有解決問題。
你看到我在這裏失蹤的東西嗎?
但是,這意味着它會去root_path,對 ?我想去「我的帳戶設置」頁面,這不是root_path ... – user3442206 2014-10-20 19:46:49
我編輯了我的意思 - 我的意思是替換,因爲你在那裏。我的建議是頂部代碼片段取代你的底部 – nil 2014-10-20 19:49:47
同樣的問題!很明顯,我必須通過用'session [「user_return_to」]替換返回行來添加'after_sign_in_path_for'。 root_path' – user3442206 2014-10-20 20:01:31