0
我有一個存儲在數據庫中的密碼。
用戶應該可以設置一個新的。
我還使用attr_encrypted gem將其作爲加密文本存儲(對稱,因爲我需要它連接到其他服務,而不僅僅是登錄),但這是另一回事。
當我顯示錶格時,由於明顯的安全原因,ruby助手的默認行爲是不發回密碼到瀏覽器。
下面是代碼:導軌,提供密碼的視覺反饋,但保持安全
<%= f.input :app_password, :as => :password %>
這種行爲可能是好的,但由其引起的一些問題。
- 如果用戶用空密碼保存表格,密碼將被刪除。我應該測試並避免空密碼的節省,但在某些應用程序中,空密碼是可以接受的,這樣做可以避免這種可能性。
- 它並未向用戶提供關於他或她已編譯密碼字段的視覺反饋。
- 它不驗證
什麼這裏是我的選擇,以獲得最標準的可能的行爲(即沒有「更改密碼」複選框)發揮得很好?
首先,我將創建一個用於更改密碼和唯一密碼的單獨表單(不確定是否適用於您,或者您讓用戶將其與其他字段一起更改)。其次,顯然,有密碼和password_confirmation在那裏,並檢查它們是否匹配。第三,讓用戶輸入現有的密碼以及新的密碼,這樣用戶不能通過點擊「確定」來刪除它。另外,如果你想要的話,檢測一個空的新密碼,然後問'你確定嗎?' – moonfly 2014-11-04 17:06:06