Rails (6.0.4.1):从使用 SCRYPT 设计 (4.8.1) 的 Authlogic (6.4.1) 迁移

Rails (6.0.4.1): Migrating from Authlogic (6.4.1) that was using SCRYPT to Devise (4.8.1)

我真的希望在我们迁移到 Devise 时允许当前使用 Authlogic (6.4.1) 的 Rails 应用程序 (6.0.4.1) 上的现有用户能够使用现有密码登录(4.8.1).

我看到的每篇文章都很好地解释了如果加密是 SHA-512 如何做到这一点。在这些情况下,您修改 config/initializers/devise.rb 并设置 config.encryptor = :authlogic_sha512(来源:https://gist.github.com/rpheath/8343779)。

但是,在某些时候,我们的应用程序从 SHA-512 迁移到 SCRYPT,方法是执行以下操作以顺利过渡用户:

acts_as_authentic do |c|
    c.transition_from_crypto_providers = [Authlogic::CryptoProviders::Sha512]
    c.crypto_provider = Authlogic::CryptoProviders::SCrypt
end

我现在遇到的问题是我不知道如何在此用例中正确迁移到 Devise。我知道我们的用户 table 有(在设计之前)一个 crypted_passwordpassword_salt 字段。 SCRYPT 似乎有更多设置需要配置。

非常感谢您提供的任何帮助。谢谢!

https://github.com/heartcombo/devise/issues/3779, use devise-scrypt.

The common solution for this still seems to be using the devise-encryptors and devise-scrypt gems which means a number of additional of moving parts.

Yes, Devise supports other encryptors via extensions, that's the way to go. -José Valim