更新authlogic无法识别以前的旧密码

时间:2018-04-06 07:52:26

标签: ruby-on-rails authlogic

使用 rails 3.2.2 时,我使用的是 authlogic 3.0.0 。现在我已将rails版本更新为 5.1.4 。并且authlogic已升级为 4.0.1

现在我以前保存的所有密码都无法通过authlogic识别。 表示密码无效。所以我必须再次更新我的密码。什么是不可取的行为。我需要做哪些更改才能使我以前保存的密码再次在新的authlogic版本上运行。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

以下是我如何解决我的问题,

<强> User.rb

  acts_as_authentic do |c|
    c.crypto_provider = Authlogic::CryptoProviders::Sha512
  end

在3.4.0版中,默认的crypto_provider已从Sha512更改为SCrypt。

如果您从未设置过crypto_provider并且正在升级,则除非您设置原始密码,否则您的密码将会中断:

c.crypto_provider = Authlogic::CryptoProviders::Sha512

如果您想在用户登录时自动从Sha512升级到SCrypt:

c.transition_from_crypto_providers = [Authlogic::CryptoProviders::Sha512]
c.crypto_provider = Authlogic::CryptoProviders::SCrypt