【问题标题】:How to import users' encrypted passwords from a legacy application to a new application如何将用户的加密密码从旧应用程序导入新应用程序
【发布时间】:2020-11-18 16:16:13
【问题描述】:

由于 devise 使用 bcrypt 进行密码加密,因此应该可以将用户及其密码导入新应用程序,并且最终用户可以无缝更改。

但是,任何通过 CSV 的导入过程,甚至是使用 encrypted_password 字段创建的控制台命令都会失败,正如设计所期望的 password 和 password_confirmation`。

如何为 CSV 导入过程覆盖此条件?

【问题讨论】:

  • 需要将密码直接导入数据库——您还需要在设计配置中使用相同的 secret_key
  • 我如何导入它?似乎该过程受到了设计的阻碍,它需要passwordpassword_confirmation。通过 CSV 过程导入不会导入,因为它未通过此设计验证
  • 无论您使用什么数据库,都应该具有批量导入功能,可以直接从 CSV 文件中获取数据并直接填充用户表。

标签: ruby-on-rails devise


【解决方案1】:

@dbugger 的 cmets 是正确的。通过直接加载到数据库中绕过设计。 good, succinct example is provided here 用于 postgresql。

但是有一个问题。虽然字符串可以在csv文件中输入空白进行上传

[...] ,valentina.takesabus@gmail.com,[...]

encrypted_password 需要引号

[...] "$2a$10$3yiD1NGkF9sCCmntNJEpce11OJtnx568sX0NM9kPCq.WIOoGX3Ko."  [...]

否则它们将无法正确加载并出现错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多