在我的web應用程序中,用戶登錄後會創建一個新會話,因此直到他關閉瀏覽器後,他纔會保持登錄狀態。管理員想禁止瀏覽器仍處於打開狀態的用戶時出現此問題。即使用戶被禁止並且無法再登錄,他仍然保持登錄狀態,直到他關閉瀏覽器或手動註銷爲止。這絕對應該修復。ROR用戶身份驗證
是否可以將驗證方法添加到每個控制器的每個動作?當然,我的意思是一個聰明的方式 - 不復制/粘貼100次。
在我的web應用程序中,用戶登錄後會創建一個新會話,因此直到他關閉瀏覽器後,他纔會保持登錄狀態。管理員想禁止瀏覽器仍處於打開狀態的用戶時出現此問題。即使用戶被禁止並且無法再登錄,他仍然保持登錄狀態,直到他關閉瀏覽器或手動註銷爲止。這絕對應該修復。ROR用戶身份驗證
是否可以將驗證方法添加到每個控制器的每個動作?當然,我的意思是一個聰明的方式 - 不復制/粘貼100次。
以下內容添加到您的應用程序控制器:
before_filter :sign_out_banned_user
def sign_out_banned_user
if current_user.banned?
session[:current_user_id] = nil
redirect_to root_path, :notice => "You are banned"
return false
end
end
你能解釋爲什麼返回false? – NARKOZ
你可以嘗試去掉'return false'。如果沒有'return false',在'redirect_to'之後代碼將會繼續,並且將會繼續執行。然後會有重複的'redirect_to',因爲你進入了操作。 – PeterWong