gpt4 book ai didi

ruby-on-rails - 将现有的密码哈希转换为设计

转载 作者:行者123 更新时间:2023-12-03 21:11:46 31 4
gpt4 key购买 nike

我正在尝试将现有的 Admin 模型转换为 Devise。我们已经有一个密码哈希,但它显然与设计不兼容。我想做的是接受登录表单并根据加密密码检查提供的密码。如果不正确,请使用旧哈希检查密码,如果匹配,则清空旧 password_hash 字段并将 Devise 的密码设置为提供的密码并保存模型。

前进的最佳方式是什么?我怀疑我需要覆盖某些东西,也许是在自定义 Controller 中,但我不完全确定如何继续。

最佳答案

您可以让 Devise 使用新的 crypt 方案来加密密码的“艰苦工作”,如 https://gist.github.com/1704632 所示。 :

class User < ActiveRecord::Base
alias :devise_valid_password? :valid_password?

def valid_password?(password)
begin
super(password)
rescue BCrypt::Errors::InvalidHash
return false unless Digest::SHA1.hexdigest(password) == encrypted_password
logger.info "User #{email} is using the old password hashing method, updating attribute."
self.password = password
true
end
end
end

关于ruby-on-rails - 将现有的密码哈希转换为设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6113375/

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