gpt4 book ai didi

ruby-on-rails - 设计:使用两个可能的加密密码登录

转载 作者:数据小太阳 更新时间:2023-10-29 07:36:40 24 4
gpt4 key购买 nike

我的应用程序使用 Devise gem 进行身份验证,但我想自定义它以使用两个可能的加密密码登录,因为我以前的应用程序使用 MD5。我的用户表中有两个字段:encrypted_pa​​sswordencrypted_old_password(我已经创建),我想检查是否存在值 encrypted_pa​​ssword 和如果发送的密码与一组匹配,否则,检查它是否与 MD5 匹配,如果为真,则替换值 encrypted_pa​​ssword

我该怎么做?

最佳答案

我不知道我的回答是否花哨,但对我有用。我希望有人可以改进我所做的。

class SessionsController < Devise::SessionsController

def create
recover_old_password unless user_signed_in?

resource = warden.authenticate! auth_options
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in resource_name, resource

respond_with resource, :location => after_sign_in_path_for(resource)
end

def recover_old_password

email = params[:user]['email']
pass = Digest::MD5.hexdigest params[:user]['password']

@user = User.find_by_email_and_encrypted_old_password(email, pass)

if @user.blank?

resource = warden.authenticate! auth_options
respond_with resource, :location => after_sign_in_path_for(resource)

elsif

if !@user.encrypted_password.nil?
@user.encrypted_password = BCrypt::Password.create params[:user]['password']
@user.save
create
end

end

end

end

关于ruby-on-rails - 设计:使用两个可能的加密密码登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11152234/

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