gpt4 book ai didi

ruby-on-rails - 如何在不丢失旧密码的情况下正确地从 has_secure_password 迁移到 encrypted_pa​​ssword(因为两者都使用 password_digest)?

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:44 25 4
gpt4 key购买 nike

has_secure_password 迁移到 devise 会导致在与用户对象交互时控制台出现以下错误:

.rvm/gems/ruby-2.4.1/gems/devise-4.4.0/lib/devise/models/database_authenticatable.rb:166:in `password_digest'

我理解这是因为设计使用了 pasword_digest 函数,因此它与 active recordpassword_digest 列不兼容 有_安全密码

解决方案是从数据库中删除 password_digest 列,但我不想丢失现有用户的密码。

我是否应该删除设计创建的 encrypted_pa​​ssword 列,然后进行迁移以将 password_digest 重命名为 encrypted_pa​​ssword,然后更新现有用户的密码,或者是有更合适的解决方案吗?

最佳答案

1> 将列 password_digest 重命名为 encrypted_pa​​ssword

2> 在 config/initializers/devise.rb 的 devise initializer 中设置

config.stretches = 11 # this is default

3> bcrypt 是默认的散列或加密算法(因此无需更改)。

参见设计配置 template .

关于ruby-on-rails - 如何在不丢失旧密码的情况下正确地从 has_secure_password 迁移到 encrypted_pa​​ssword(因为两者都使用 password_digest)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48374561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com