Glorious
12.10.2012 - 17:16
Пишу скрипт восстановления пароля.
Как я его вижу:
Посетитель сайта заполняет логин или емейл, если он найден в базе, на данный мейл высылается письмо со ссылкой на указание нового пароля.
Перед отправкой письма генерируется уникальное значение (например хэш microtime) и заносится в базу для конкретного пользователя.
Если этот идентификатор присутствует в ссылке для восстановления, то меняем пароль пользователя, если он отсутствует или отличается, то выводим сообщение, что страница недействительна.
Насколько практично мое решение с хранением идентификатора в базе, или есть более универсальное решение?
Просто не хочется для восстановления пароля новую таблицу заводить.
Michael
12.10.2012 - 17:20
нормальное решение.
А для такого типа временных данных в движке и надо по хорошему учесть один раз табличку.
_____________
There never was a struggle in the soul of a good man that was not hard
killer8080
12.10.2012 - 17:25
Glorious
а сессии не вариант?
Цитата (killer8080 @ 12.10.2012 - 13:25) |
Glorious а сессии не вариант? |
Как показала практика - нет. Люди запрашивают восстановление и уходят курить к примеру. Или на другой сайт... Ну уходят. Открывают через час почту, а сессия тютю.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
VELIK505
12.10.2012 - 18:06
А почему бы просто тип восстанавливает пароль.
вписывает e-mail и ты отсылаешь ему на мыло новый сгенереный пароль и всё.
dron4ik
12.10.2012 - 18:08
Цитата (killer8080 @ 12.10.2012 - 13:25) |
Glorious а сессии не вариант? |
Как показала практика, у многих людей отрыты разные сервисы на разных проводниках, в примеру почта на ФФ а сайт на Опере...
У меня так, для экономии вкладок, и удобного перехода между проектами и доками - гуглом!
_____________
Ex3m.com.ua — Активный образ жизни
dron4ik
12.10.2012 - 18:11
Цитата (VELIK505 @ 12.10.2012 - 14:06) |
А почему бы просто тип восстанавливает пароль. вписывает e-mail и ты отсылаешь ему на мыло новый сгенереный пароль и всё. |
Тогда нужна доп таблика, или поле...
К примеру я могу знать Почту моего друга, который посещает сайт, я запрашиваю восстановление на его почту, и он не проверив почту, так и будет до посинения вбивать свой старый пароль, без результативно!!!
Если я не правильно понял, поправь)
_____________
Ex3m.com.ua — Активный образ жизни
можно сделать с подтверждением, сначала приходит письмо со ссылкой на подтверждение смены пароля, после перехода по ссылке присылается новый пароль
Invis1ble
12.10.2012 - 21:52
Цитата |
можно сделать с подтверждением, сначала приходит письмо со ссылкой на подтверждение смены пароля, после перехода по ссылке присылается новый пароль |
поддерживаю. Самый оптимальный вариант, его и практикую. Заводим в табличке users поле recovery_token и высылаем его в письме в ссылке на подтверждение смены пароля.
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
kuchuluk
26.05.2013 - 16:46
Цитата (Invis1ble @ 12.10.2012 - 17:52) |
Заводим в табличке users поле recovery_token и высылаем его в письме в ссылке на подтверждение смены пароля. |
а что в этом поле хранится?
Invis1ble
26.05.2013 - 17:05
kuchuluk
26.05.2013 - 17:14
Цитата (Invis1ble @ 26.05.2013 - 13:05) |
kuchuluk случайный ключ подлиннее |
и после того как пользователь перейдет по ссылке, его удалять из таблицы?
Invis1ble
26.05.2013 - 17:18
kuchuluk
26.05.2013 - 17:25
Цитата (Invis1ble @ 26.05.2013 - 13:18) |
kuchuluk А самому подумать? ) |
да просто я сейчас как раз делаю восстановление пароля) я вот логику построения никак не могу продумать. вот отправляем мы пользователю ссылку, в которой содержится значение из этого поля, пользователь переходит по ссылке и создаем новую сессию и выводим форму для ввода нового пароля и подтверждения. Пользователь меняет пароль и удаляем из таблицы значение, которое было в этом поле. Хорошо, но если пользователь проигнорирует просто это письмо и не перейдет?
Invis1ble
26.05.2013 - 17:35
А если он "Восстановление пароля" не кликнет?
Цитата |
если пользователь проигнорирует просто это письмо и не перейдет? |
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.