[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Восстановление пароля
Glorious
Пишу скрипт восстановления пароля.

Как я его вижу:
Посетитель сайта заполняет логин или емейл, если он найден в базе, на данный мейл высылается письмо со ссылкой на указание нового пароля.

Перед отправкой письма генерируется уникальное значение (например хэш microtime) и заносится в базу для конкретного пользователя.

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

Насколько практично мое решение с хранением идентификатора в базе, или есть более универсальное решение?
Просто не хочется для восстановления пароля новую таблицу заводить.
Michael
нормальное решение.
А для такого типа временных данных в движке и надо по хорошему учесть один раз табличку.

_____________
There never was a struggle in the soul of a good man that was not hard
killer8080
Glorious
а сессии не вариант?
twin
Цитата (killer8080 @ 12.10.2012 - 13:25)
Glorious
а сессии не вариант?

Как показала практика - нет. Люди запрашивают восстановление и уходят курить к примеру. Или на другой сайт... Ну уходят. Открывают через час почту, а сессия тютю.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
VELIK505
А почему бы просто тип восстанавливает пароль.
вписывает e-mail и ты отсылаешь ему на мыло новый сгенереный пароль и всё.
dron4ik
Цитата (killer8080 @ 12.10.2012 - 13:25)
Glorious
а сессии не вариант?

Как показала практика, у многих людей отрыты разные сервисы на разных проводниках, в примеру почта на ФФ а сайт на Опере...

У меня так, для экономии вкладок, и удобного перехода между проектами и доками - гуглом!

_____________
Ex3m.com.ua — Активный образ жизни
dron4ik
Цитата (VELIK505 @ 12.10.2012 - 14:06)
А почему бы просто тип восстанавливает пароль.
вписывает e-mail и ты отсылаешь ему на мыло новый сгенереный пароль и всё.

Тогда нужна доп таблика, или поле...

К примеру я могу знать Почту моего друга, который посещает сайт, я запрашиваю восстановление на его почту, и он не проверив почту, так и будет до посинения вбивать свой старый пароль, без результативно!!!

Если я не правильно понял, поправь)

_____________
Ex3m.com.ua — Активный образ жизни
n58oo
можно сделать с подтверждением, сначала приходит письмо со ссылкой на подтверждение смены пароля, после перехода по ссылке присылается новый пароль
Invis1ble
Цитата
можно сделать с подтверждением, сначала приходит письмо со ссылкой на подтверждение смены пароля, после перехода по ссылке присылается новый пароль

поддерживаю. Самый оптимальный вариант, его и практикую. Заводим в табличке users поле recovery_token и высылаем его в письме в ссылке на подтверждение смены пароля.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

kuchuluk
Цитата (Invis1ble @ 12.10.2012 - 17:52)
Заводим в табличке users поле recovery_token и высылаем его в письме в ссылке на подтверждение смены пароля.

а что в этом поле хранится?
Invis1ble
kuchuluk
случайный ключ подлиннее

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

kuchuluk
Цитата (Invis1ble @ 26.05.2013 - 13:05)
kuchuluk
случайный ключ подлиннее

и после того как пользователь перейдет по ссылке, его удалять из таблицы?
Invis1ble
kuchuluk
А самому подумать? )

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

kuchuluk
Цитата (Invis1ble @ 26.05.2013 - 13:18)
kuchuluk
А самому подумать? )

да просто я сейчас как раз делаю восстановление пароля) я вот логику построения никак не могу продумать. вот отправляем мы пользователю ссылку, в которой содержится значение из этого поля, пользователь переходит по ссылке и создаем новую сессию и выводим форму для ввода нового пароля и подтверждения. Пользователь меняет пароль и удаляем из таблицы значение, которое было в этом поле. Хорошо, но если пользователь проигнорирует просто это письмо и не перейдет?
Invis1ble
А если он "Восстановление пароля" не кликнет?
Цитата
если пользователь проигнорирует просто это письмо и не перейдет?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.