0
我正在使用Clearance gem進行身份驗證。我在應用程序中有一個頁面,我希望任何人都可以在URL/Session中擁有安全令牌。他們不需要是系統中的用戶。允許用戶使用URL令牌訪問受保護的頁面
這是可以與清除。我應該如何着手的任何提示。起初我以爲我應該重寫require_login
和current_user
。這是一個好方法嗎?
我正在使用Clearance gem進行身份驗證。我在應用程序中有一個頁面,我希望任何人都可以在URL/Session中擁有安全令牌。他們不需要是系統中的用戶。允許用戶使用URL令牌訪問受保護的頁面
這是可以與清除。我應該如何着手的任何提示。起初我以爲我應該重寫require_login
和current_user
。這是一個好方法嗎?
安全令牌頁面是否也允許訪問已登錄的人,或者必須大家有有安全令牌嗎?
如果您必須擁有安全令牌,無論您是否使用Clearance登錄,那麼我將根本不會通過調用require_login
來避免此控制器的Clearance(或者如果過濾器已經調用skip_before_action :require_login
在你的控制器的繼承樹中)。然後你可以實現你自己的before_action
,檢查令牌並做任何你想要的。如果需要,您也可以爲此控制器實施您自己的current_user
。
如果頁面也應該允許用戶簽訂的話,我還是會跳過行動前的間隙,而使用這樣的事:
def require_login_or_secret_token
unless params["super_secret_security_token"] == TOKEN
require_login
else
end
然後,你需要重寫CURRENT_USER返回做客對象,而如果您想在此操作/視圖中使用current_user
,則爲零:
def current_user
super || Guest.new
end