проверка пользователя по электронной почте на PHP


На самом деле я создаю веб-приложение с использованием PHP и обращаюсь за помощью в проверке пользователя. Как и на некоторых веб-сайтах, при регистрации вам будет отправлено электронное письмо со ссылкой для подтверждения. Как мне реализовать это в PHP? Все, что я знаю, это то, что я должен использовать функцию PHP mail() для отправки электронной почты. Пожалуйста, помогите. Необходимый. Спасибо. :)

Author: ikartik90, 2011-02-06

3 answers

Точно так же, как и при защите CSRF, вы генерируете уникальный токен.

$token =  md5(uniqid(rand(), TRUE));

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

Чтобы сделать его более безопасным, вы могли бы, как и в случае CSRF, добавить ограничение по времени.

 1
Author: Alfred, 2011-02-06 16:23:43

Ответ Патрика правильный, хотя я хочу отметить, что есть и другие возможности!

Вам не обязательно создавать и хранить уникальный токен в своей базе данных. Это накладные расходы на передачу данных, которые необходимы только один раз.

Вы также можете воспользоваться преимуществами одностороннего хэширования.

Например, отправьте пользователю код md5('my-secret-application-token'.$user_email_adress).

Вы можете проверить это точно так же, но вам не нужно хранить секретный код.

 7
Author: The Surrican, 2011-02-06 10:03:40

Это очень широкий вопрос, поэтому мы можем дать только общий ответ, но общий метод для этого

  1. вставьте адрес электронной почты пользователя в свою базу данных, но отметьте его как непроверенный
  2. создайте уникальный регистрационный ключ и вставьте его в другую таблицу только для этих ключей
  3. отправьте электронное письмо на адрес электронной почты пользователя со ссылкой на ваш сайт, который передает этот регистрационный ключ в качестве аргумента (например http://site.com/confirm.php?key=1234)
  4. при посещении этого URL-адреса отметьте электронное письмо как проверенное и удалите временно созданный регистрационный ключ
 3
Author: Patrick, 2011-02-06 09:13:40