Ego*_*rMM 4 passwords ruby-on-rails
我有一个带有 has_secure_password 的用户授权的 Rails 项目。因此,密码作为加密密码存储在数据库中。
现在我想添加以下内容:用户将能够将其当前密码更改为新密码,并且该新密码也必须在数据库中加密。
我找不到任何有关它的信息。
有没有办法用 has_secure_password 做到这一点?
您可以在控制台中这样做:
user = User.find(1)
user.password = 'test123'
user.password_confirmation = 'test123'
user.save
Run Code Online (Sandbox Code Playgroud)
因此,这将使用新密码更新用户。如果你想使用它,update_attributes
那么:
user.update_attributes(password: 'test123', password_confirmation: 'test123')
Run Code Online (Sandbox Code Playgroud)
这将更新用户的密码,该密码将采用加密形式。您无需执行任何操作,rails 就会在更新时处理它。
或者,如果您正在使用strong parameters
并且具有:
def user_params
params.require(:user).permit(:password, :password_confirmation)
end
Run Code Online (Sandbox Code Playgroud)
你在参数中有这个:
Parameters: {"user"=>{"password"=>"test123", "password_confirmation"=>"test123"}}
Run Code Online (Sandbox Code Playgroud)
那么你可以在更新操作中使用它:
user.update(user_params)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
归档时间: |
|
查看次数: |
2602 次 |
最近记录: |