2015-02-14 3 views
1

У меня есть проект CI и вы хотите перенести свою базу данных на Laravel's one.Как переместить пароли пользователей CodeIgniter в Laravel

Единственная проблема заключается в том, что у них есть разные способы хэширования пользовательских паролей, поэтому я не могу найти способ переместить их из одной базы данных в другую.

У меня уже есть ответ для ответа, но никто не нашел, что говорит о переносе паролей.

Заранее спасибо.

ответ

6

У меня нет опыта работы с CodeIgniter и я не знаю, как это происходит с хешированием паролей, но вот как я подошел бы к проблеме.

Чтобы сделать что-то ясно: вы можете только «преобразовать» пароль в хэширование Laravel, если у вас есть фактический пароль (в обычном тексте). Поскольку вы не храните простой пароль, у вас его есть только в тот момент, когда пользователь входит в наш пароль.

Поэтому вы должны понимать, что эта миграция не выполняется за несколько часов. Пользователям потребуется некоторое время, чтобы ввести их пароли.

Итак, что я получаю, вы должны добавить поле в таблицу своих пользователей для пароля CodeIgniter. Назовем это ci_password. (Или, вероятно, вам просто нужно переименовать старый столбец пароля и создать новый для пароля Laravel).

Теперь каждый раз, когда пользователь входит в систему, вы сначала проверяете, сохранен ли пароль в Laravel в базе данных и попытка входа в систему. Если нет хранимого хэша Laravel, проверьте с помощью ci_password. (Для этого вам придется сделать CodeIgniters хэширования работы внутри приложения Laravel. К сожалению, не может вам помочь с этим)

Если ci_password действует использование входного пароля от пользователя и генерировать хэш Laravel (используя Hash::make('secret')) , Сохраните новый хэш в базе данных и удалите (установите на NULL) ci_password.

Таким образом, пароли будут перемещаться один за другим, и вам не нужно ничего делать. И, может быть, в один счастливый день все старые хэши будут перенесены, и вы можете удалить эту логику и столбец в базе данных.

+0

Благодарим за быстрый ответ. К сожалению, этот метод будет довольно долгим, поэтому я решил просто случайно изменить свои пароли, а затем отправить их пользователям. – Alexxali

+0

Это тоже работает;) – lukasgeiter

Смежные вопросы