Сброс пароля Перенаправить URL в куки - PullRequest
0 голосов
/ 24 мая 2018

Мой процесс сброса пароля выглядит следующим образом:

  1. Пользователь нажимает кнопку, отправляет электронное письмо о сбросе на предоставленную электронную почту
  2. Кликает по ссылке сброса пароля, открывает веб-страницу
  3. Пользователь отправляет новый пароль
  4. Перенаправить обратно туда, где изначально находился пользователь (например, «просмотреть корзину»)

Я не могу использовать $_SERVER['HTTP_REFERER'], потому что естьнесколько переадресаций в моей логике для определенных алгоритмов аутентификации при сбросе пароля.Использование HTTP_REFERER было бы ненадежным (я думаю).

Было бы плохой идеей сохранить исходный URL в файле cookie, а затем использовать эти данные в файле cookie после того, как пользователь завершит процесс сброса пароля?Или я должен пойти другим путем и оставить ссылку для перенаправления в качестве параметра в ссылке для сброса электронной почты и сохранить ее в скрытом поле в форме пароля для сброса?

Любые предложения приветствуются!

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Из процесса, который вы нам даете, шаг 1 должен где-то хранить значение URL.

Ваша кнопка «Сбросить пароль» может выглядеть примерно так:

<a href="reset_password.php?prev_url=<?php echo urlencode($_SERVER['REQUEST_URI']); ?>">Reset password</a>

Thisдаст вам переменную с текущим закодированным URL-адресом, т.е. страницу, на которой находится пользователь.

Затем файл reset_password.php может сохранить URL-адрес $_GET['prev_url'] в таблице сброса пароля (которая также хранитссылка для сброса).

Итак, на последнем шаге, когда ваша ссылка для сброса будет проверена, просто возьмите столбец prev_url в вашей таблице, сохраните его в переменной ($prev_url в моем примере) и выполнитеа:

header('location:'.$prev_url);
0 голосов
/ 24 мая 2018

Вы можете создать уникальный идентификатор.Затем вы отправляете ссылку на адрес электронной почты с уникальным идентификатором в параметре get fe: reset_password? Id = 21948HJK9 Чтобы убедиться, что это правильный пользователь, вы можете сохранить идентификатор в базе данных и удалить его, если кто-то пытается получить к нему доступ.это длится 24 часа.Когда reset_password открыт, вы ищете в базе данных идентификатор и проверяете его.В базе данных идентификатор подключен к учетной записи.Если идентификатор в базе данных и параметр get совпадают, это подтверждается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...