【问题标题】:How to move CodeIgniter user passwords to Laravel如何将 CodeIgniter 用户密码移动到 Laravel
【发布时间】:2015-04-15 15:00:07
【问题描述】:

我有一个 CI 项目,想将其数据库迁移到 Laravel 的。

唯一的问题是他们有不同的方法来散列用户密码,所以我找不到将它们从一个数据库移动到另一个数据库的方法。

我已经用谷歌搜索了答案,但我发现没有人谈论迁移密码。

提前致谢。

【问题讨论】:

    标签: database codeigniter laravel migration


    【解决方案1】:

    我没有使用 CodeIgniter 的经验,也不知道它是如何进行密码散列的,但这是我解决问题的方法。

    为了明确一点:如果您有实际密码(纯文本),您只能将密码“转换”为 Laravel 哈希。由于您不存储纯密码,因此您只有在用户登录时才拥有它,我们在某处输入密码。

    因此,您必须意识到这种迁移不是在几个小时内完成的。您的所有用户都需要一些时间来输入他们的密码。

    所以我要说的是,您应该在您的用户表中添加一个字段以获取 CodeIgniter 密码。我们称之为ci_password。 (或者可能您只需将旧密码列重命名为此并为 Laravel 密码创建一个新的列)。

    现在每次用户登录时,首先检查数据库中是否存储了 Laravel 密码并尝试登录。如果没有存储 Laravel 哈希,请检查 ci_password。 (为此,您必须让 CodeIgniters 散列在您的 Laravel 应用程序中工作。抱歉无法帮助您)

    如果ci_password 有效,则使用用户输入的密码并生成 Laravel 哈希(使用 Hash::make('secret'))。将新哈希存储在数据库中并删除(设置为NULLci_password

    这样,密码将被一一迁移,您无需执行任何操作。也许,在幸运的一天,所有旧的哈希都会被迁移,你可以删除这个逻辑和数据库中的列。

    【讨论】:

    • 感谢您的快速回答。不幸的是,这种方法会很长,所以我决定只是随机更改他们的密码,然后将它们发送给用户。
    猜你喜欢
    • 2021-02-18
    • 2013-02-17
    • 2017-04-16
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多