gpt4 book ai didi

ruby-on-rails - 从清除密码存储迁移到 authlogic

转载 作者:太空宇宙 更新时间:2023-11-03 16:11:15 35 4
gpt4 key购买 nike

我目前正在开发一个存储明文密码的 Rails 应用程序 (...)。所以我正在迁移到使用“标准”SHA512 加密的 Authlogic 身份验证。

我做的很好:

#file /models/user.rb
class User < ActiveRecord::Base

acts_as_authentic { |c|
c.transition_from_crypto_providers = [MyOwnNoCrypto, Authlogic::CryptoProviders::Sha512]
}
end

#file /lib/my_own_no_crypto.rb
class MyOwnNoCrypto
def self.encrypt(*tokens)
return tokens[0] # or tokens.join I guess
end

def self.matches?(crypted_password, *tokens)
return crypted_password == tokens.join
end
end

这很好——而且工作得很好——但我想知道是否有更性感的方法来做到这一点,也许使用 Authlogic 核心选项?

谢谢!

最佳答案

我同意thomasfedb's answer的部分这建议使用一次性转换而不是使用 AuthLogic 的转换模型。在这种情况下,您希望尽快加密这些密码,而不是在用户下次登录时加密。不过,我可能建议迁移而不是 Rake 任务:

# in db/migrate/nnnnnnnn_encrypt_passwords.rb:

class EncryptPasswords < ActiveRecord::Migration
def self.up
add_column :users, :crypted_password
User.each do |u|
u.encrypt_password!
end
remove_column :users, :password
end

def self.down
raise IrreversibleMigration.new('Cannot decrypt user passwords')
end
end

关于ruby-on-rails - 从清除密码存储迁移到 authlogic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3074703/

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