我在Rails 3.0.9中使用HTTP基本認證,我需要檢查用戶是否有權在我的html.erb中顯示一些元素文件。我怎樣才能做到這一點?檢查用戶是否被授權(HTTP基本認證,Rails 3.0.9)
6
A
回答
10
維塔利的做法看起來像一個很好的解決方案,但一個嚴重的錯誤,授予管理員訪問任何嘗試登錄的人,即使他們的憑據不正確。
:首先,一對夫婦的功能測試(上行動需要身份驗證)(它被upvoted人們不要盲目接受它的安全漏洞的「正確」答案張貼這在希望的答案)
test "admin is set with correct credentials" do
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("user", "pass")
get :index
assert_response 200
assert_equal true, session[:admin]
end
test "admin isn't set with incorrect credentials" do
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials("user", "incorrect")
get :index
assert_response 401
assert_not_equal true, session[:admin]
end
如果使用Vitaly的代碼運行此操作,則第二個測試將失敗,因爲session[:admin]
將被設置爲true,即使密碼不正確。
這裏是我的代碼,以正確設置session[:admin]
,使這兩個測試通過:
private
def authenticate
authenticate_or_request_with_http_basic do |user_name, password|
session[:admin] = (user_name == "name" && password == "pass")
end
end
0
您可以使用基本身份驗證慘慘的工作,閱讀本指南https://github.com/ryanb/cancan/wiki/changing-defaults,那麼就使用康康舞爲通常情況下,您可以根據登錄的用戶名設置權限。
+0
它看起來不錯,但它增加了非必要的複雜性。我想到使用會話來檢查用戶是否登錄的可用性。有任何想法嗎? – Vitaly
相關問題
- 1. 檢查用戶是否被授權
- 2. 如何檢查用戶是否被授權內部操作
- 3. HTTP基本授權在.NET
- 4. phpMyAdmin基本HTTP授權
- 5. http auth rails 3.0.9
- 6. django是否與HTTP基本授權本地集成
- 7. SleekXMPP-如何檢查用戶是否被認證?
- 8. 檢查用戶是否在Firebase中的首次被認證Google Android的認證
- 9. Ruby on Rails HTTP基本認證
- 10. HTTP認證報頭的OpenID授權碼
- 11. Rails用戶授權
- 12. 多個用戶認證和授權
- 13. PHP-SDK:檢查用戶是否授權我的應用程序
- 14. 雖然用戶被授權,但正在檢查用戶!= null
- 15. Ruby on Rails CRUD和用戶認證和授權模塊
- 16. Rails的用戶認證支持,NOT授權
- 17. rails - 認證,授權和審計confoussion
- 18. Unity3d檢查用戶是否已授權設備攝像頭
- 19. REST認證/授權
- 20. PHP CURL授權。如何檢查授權ttl是否已過期?
- 21. 的Rails 3 - 基本的HTTP認證VS認證令牌與iPhone
- 22. 與Volley Android庫Http基本授權
- 23. 使用EWS檢查Exchange用戶授權
- 24. HTTP基本認證頭
- 25. Apache http基本認證?
- 26. Android http基本認證
- 27. Padrino基本用戶認證
- 28. 認證/授權是否阻止Jquery調用頁面方法?
- 29. AJAX + jQuery + SAP認證+基本認證= 401未經授權。 (代碼+圖片)
- 30. OAuth2:JWT授權授權和客戶端憑證授權與JWT客戶端認證有什麼區別?
謝謝你,你是對的。我是如何犯這個錯誤的。希望沒有多少人受到影響。 對不起,改變正確的答案這麼晚了。我沒有注意到這個通知。 – Vitaly