Миграция с CI Ion Auth на аутентификацию Laravel

#php #codeigniter #authentication #laravel #ion-auth

#php #codeigniter #аутентификация #laravel #ion-auth

Вопрос:

Мне нужно перенести один проект с CI на Laravel. В этом проекте используется Ion Auth Бена Эдмундса (http://benedmunds.com/ion_auth /). Вопрос в том, возможно ли сохранить старые пароли пользователей (чтобы старым пользователям не приходилось восстанавливать свои пароли). В конфигурационном файле Ion Auth установлен sha1 в качестве хэш-метода

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

Ответ №1:

Что вы должны сделать, это что-то вроде этого (полу псевдокод — не проверено — но вы поняли идею):

    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 (), и если да, преобразуйте необработанный пароль в хэш bcrypt, который использует Laravel.

Это позволяет вам переносить пользователей без сброса пароля.

Комментарии:

1. чудесная скрытая миграция!

Ответ №2:

Это не будет работать точно, поскольку Ion Auth не использует прямой хэш sha1. Вы можете посмотреть в модели, чтобы увидеть алгоритм хеширования, затем вы просто захотите дублировать его в Laravel.

Главное, на что нужно обратить внимание, это проверить вашу конфигурацию и посмотреть, используете ли вы SHA1 или BCrypt, поскольку Ion Auth поддерживает оба.