2015-11-20 1 views
0

Я преобразовал свой проект в Laravel. У меня есть существующие данные, в которых хранятся хэши паролей. Если я загружу этот проект на свой удаленный сервер. Мои клиенты не могут войти в систему. Они должны использовать раздел забытых паролей.Как использовать старые пароли после преобразования проекта в Laravel

Но это не хорошо для моих клиентов.

Я хочу использовать bcrypt для хэширования паролей, как в Laravel. Но в моей старой системе. Я использовал другой метод. Для полной совместимости я не хочу ничего менять по умолчанию в Laravel.

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

Но это нехорошие решения. Есть ли у вас какие-либо идеи ?

+1

Отправлять электронное письмо каждому пользователю с новым паролем. Для этого нет обходного пути, им рано или поздно придется менять. – Andrew

+0

Какой алгоритм вы использовали для своих старых хэшей? Возможно, этот [ответ] (http://stackoverflow.com/a/14402451/575765) может дать вам идею. – martinstoeckli

ответ

5

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

+0

должен признать, что это очень хорошая идея;) – Moppo

+0

$ credentials = $ request-> only (['mail', 'password']); Как передать имя таблицы для учетных данных? –

+0

Также хорошей практикой является то, что в какой-то момент времени вы должны сделать рассылку, которую пользователь должен изменить там пароль из соображений безопасности – lordkain

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