从CI Ion Auth迁移到Laravel身份验证

时间:2014-06-26 12:08:16

标签: php codeigniter authentication laravel ion-auth

我必须将一个项目从CI迁移到Laravel。该项目使用Ben Edmunds的Ion Auth(http://benedmunds.com/ion_auth/)。问题是是否可以保留旧用户密码(因此旧用户不必恢复其密码)。在Ion Auth的配置文件中,将sha1设置为哈希方法

$config['hash_method']    = 'sha1';

2 个答案:

答案 0 :(得分:2)

你应该做的是这样的事情(半伪代码 - 未经测试 - 但你明白了):

   login()
   {
        $password = Input::get('password');
        $user = User::where('email', '=', Input::get('email');

        if (sha1($password) == $user->password)
        {
              // User old password matches - so now lets re-hash the password as bcrypt
              $user->password = Hash::make($password);
        }

        ... do rest of authentication normally
    }

基本上在执行正常的Laravel登录之前,请检查sha1()旧密码是否匹配,如果匹配,则将原始密码转换为Laravel使用的bcrypt哈希值。

这允许您在没有任何密码重置的情况下迁移用户。

答案 1 :(得分:2)

由于Ion Auth没有使用直接的sha1哈希,因此不会发生这种情况。您可以查看模型以查看散列算法,然后您只想在Laravel中复制它。

要寻找的主要方法是检查您的配置,看看您是否使用SHA1或BCrypt,因为Ion Auth支持两者。