Ruby on rails rails,提供密码的视觉反馈,同时保证密码的安全性
我在数据库中存储了一个密码Ruby on rails rails,提供密码的视觉反馈,同时保证密码的安全性,ruby-on-rails,forms,Ruby On Rails,Forms,我在数据库中存储了一个密码 用户应该能够设置一个新的 我还使用attr_encrypted gem将其存储为加密文本(对称,因为我需要它来连接到其他服务,而不仅仅是登录),但这是另一回事 当我显示表单时,出于明显的安全原因,ruby helpers的默认行为是不将密码发送回浏览器 代码如下: <%= f.input :app_password, :as => :password %> :密码%> 这种行为可能还可以,但也会产生一些问题 如果用户使用空密码保存表单,密码将被
用户应该能够设置一个新的
我还使用attr_encrypted gem将其存储为加密文本(对称,因为我需要它来连接到其他服务,而不仅仅是登录),但这是另一回事
当我显示表单时,出于明显的安全原因,ruby helpers的默认行为是不将密码发送回浏览器
代码如下:
<%= f.input :app_password, :as => :password %>
:密码%>
这种行为可能还可以,但也会产生一些问题
- 如果用户使用空密码保存表单,密码将被删除。我应该测试并避免空密码节省,但在某些应用程序中,空密码是可以接受的,这样做可以防止这种可能性
- 它不会向用户提供关于他或她已编译密码字段这一事实的视觉反馈李>
- 它不能很好地进行验证
为了获得最标准的行为(即没有“更改密码”复选框),我在这里有哪些选项?请在表单中以这种方式包括密码字段:
<%= f.password_field :app_password %>
使用@user.Authenticate(params[:password])验证您的用户。
在另一个表单中使用3个字段更新密码,即旧密码、密码和密码确认。首先,我要创建一个单独的表单来更改密码和唯一的密码(不确定您是否需要更改密码,或者您让用户随其他字段一起更改密码)。第二,显然,在那里有密码和密码确认,并检查它们是否匹配。第三,让用户在输入新密码的同时输入现有密码,这样用户就不能在没有任何想法的情况下单击“确定”将其删除。另外,如果您愿意,可以检测一个空的新密码,并询问“您确定吗?”
begin
self.auth_token = SecureRandom.urlsafe_base64
end while User.exists?(auth_token: self.auth_token)