我存储在数据库中的密码。
用户应该能够设置一个新的。
我还使用attr_encrypted gem将其存储为加密文本(对称因为我需要它回来连接到其他服务而不仅仅是登录)但这是另一个故事。
当我显示表单时,出于明显的安全原因, ruby助手的默认行为是不将密码发送回浏览器。
这是代码:
<%= f.input :app_password, :as => :password %>
这种行为可能没问题,但是它会产生一些问题。
为了获得最标准的行为(即不更改密码&#39;复选框),我有什么选择?
答案 0 :(得分:0)
请在表单中包含密码字段:
<%= f.password_field :app_password %>
标准用途和密码设置为:
向您的用户模型添加对has_secure_password
向用户添加字段以存储入站密码,迁移:add_column :users, :auth_token, :string
在创建生成令牌之前:
begin
self.auth_token = SecureRandom.urlsafe_base64
end while User.exists?(auth_token: self.auth_token)
使用@user.authenticate(params[:password])
使用3个字段,old_password,password和password_confirmation更新另一个表单的密码。