Ale*_*ali 1 database migration codeigniter laravel
我有一个CI项目,并希望将其数据库迁移到Laravel的数据库.
唯一的问题是他们有不同的方法来散列用户密码,因此我找不到将它们从一个数据库移动到另一个数据库的方法.
我已经用谷歌搜索了答案,但我发现没有人谈到迁移密码.
提前致谢.
我没有使用CodeIgniter的经验,也不知道它是如何进行密码散列的,但这就是我如何处理这个问题.
要明确一点:如果您有实际密码(纯文本格式),则只能将密码"转换"为Laravel哈希值.由于您没有存储普通密码,因此您只有在用户登录时才会输入密码.
因此,您必须意识到此迁移不会在几个小时内完成.所有用户都需要一些时间才能输入密码.
所以我得到的是你应该在你的users表中为CodeIgniter密码添加一个字段.我们称之为ci_password.(或者您可能只需将旧密码列重命名为此,并为Laravel密码创建一个新密码).
现在,每次用户登录时,首先检查Laravel密码是否存储在数据库中并尝试登录.如果没有存储Laravel哈希,请检查ci_password.(为此你必须在你的Laravel应用程序中使CodeIgniters哈希工作.抱歉无法帮助你)
如果ci_password有效则使用用户输入的密码并生成Laravel散列(使用Hash::make('secret')).将新哈希存储在数据库中并删除(设置为NULL)ci_password.
通过这种方式,密码将逐个迁移,您无需执行任何操作.也许,在幸运的一天,所有旧的哈希都将被迁移,您可以删除此逻辑和数据库中的列.
| 归档时间: |
|
| 查看次数: |
635 次 |
| 最近记录: |