Ищете несколько хороших вариантов для отправки пользователям сброса пароля электронной почты
Я хочу отправлять электронные письма пользователям, когда забывают их пароли, которые побуждают их сбросить свои пароли. Я знаю, что это спорно и ищу несколько хороших варианты / предложения / методы / статьи на выбор.
Я предлагаю пользователям нажать на ссылку "забыл пароль" с помощью простого скрипта с частью PHP, которая делает это:
$Email = $_POST['email'];
$success = false;
$formError = false;
if(isset($_POST['sub_forgot_pw'])) {
if(empty($_POST['email'])) {
$formError = "true";
$error = "Please enter your e-mail address.";
}else{
$to = $Email;
$subject = "Password Help";
$message = "To reset your password, please <a href='http://www.blahblahblah.org'>Click here</a><br /><br />Do LIFE,<br /> The Team";
$from = "CysticLife <noreply@cysticlife.org>";
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= "From: $from";
if(mail($to, $subject, $message, $headers));{
$success = "true";
}
}
}
2 ответа
Вот что я делаю:
У меня есть таблица reset_password. Когда кто-то запрашивает сброс, они обычно нажимают на ссылку на вашем сайте, где написано "забыл пароль", где они вводят свою электронную почту, с которой они зарегистрированы, и ваша система отправляет ссылку. Конечно, вы начинаете с выяснения, зарегистрирован ли пользователь вообще. выбирая из пользователей, где email = $_POST['email']. Если они существуют, создайте случайно сгенерированный токен, например
$token = md5($_POST['email'].time());
Но, как сказал Бух Бух в комментарии ниже, вы можете использовать что-то менее очевидное для генерации вашего токена. crypt () может принять шаблон соли, если хотите.
Вставьте запрос (адрес электронной почты и токен) в таблицу reset_password, а затем отправьте им ссылку, например
http://www.domain.com/resetpassword.php?token=<?php echo $token; ?>
Затем в этом файле вы берете $_GET['token'] и сопоставляете его с таблицей reset_password. Если токен действителен, вы предоставляете им форму, которая запрашивает новый пароль. После отправки выберите пользователя с адресом электронной почты, связанным с этим токеном, и обновите таблицу пользователей.
Существует опасность потери URL для любого, кто прослушивает сеть. Чтобы избежать этого, вы можете сгенерировать случайный короткий ключ, такой как vX4dq, и сохранить его в своей базе данных. Попросите пользователя запомнить это. Когда пользователь перезагружается по ссылке, попросите его / ее ввести только известный ему ключ.
Дополнительно:- вы можете показать этот ключ в капче, чтобы он не был прослушан.