У меня есть контроллер, который отправляет электронное письмо с массивом переменных, который включает в себя имя человека и метку времени, в которую они сделали запрос. Электронная почта отправляет html-файл, а в html-файле есть «Нажмите здесь, чтобы удалить bla bla bla». линия. Когда пользователь нажимает на ссылку, ссылка отправит их контроллеру, который удалит их имя из моей базы данных.Как сделать свою собственную кнопку «отписаться» в электронном письме?
Теперь я не совсем уверен, как я должен это делать. Я мог бы, очевидно, сделать что-то вроде этого:
Click <a href='https://xxx.xx.xxx.xxx:8000/web/misc/request/delete/<?php echo $data['timestamp']; ?>/<?php echo $data['name']; ?>'> here</a> to delete bla bla bla.
Тогда, в моем файле маршрутизации, я буду иметь:
Route::get('/web/misc/request/delete/{time}/{name}', '[email protected]');
Тогда я могу только запросить мою базу данных с именем и метки времени, и альт , Удалить.
Но кто-то может просто просто изменить имя или временную метку в URL-адресе, не так ли?
Это заставило меня хотеть использовать POST, но я не совсем уверен, как я должен это делать в этом сценарии. Я мог бы просто создать форму, установить некоторые входы в скрытые, а затем сохранить имя и временную метку в эти входные значения. Я еще не пробовал это, потому что это звучит довольно хаки. Использование сеанса также не будет работать в этом случае, верно? Будет ли это подходящее время для использования файлов cookie? Или я должен использовать какие-то ключи?
В URL-адрес пользователя вводится уникальный идентификатор, который невозможно/непрактично угадывать. Или вы подтверждаете свое подтверждение по электронной почте. – deceze
Один из способов заключается в том, что каждое электронное письмо, которое вы собираетесь отправлять, создало бы уникальный идентификатор или указатель, и поместил бы это в вашу базу данных и приложил бы это к URL-адресу, а затем запросил бы ваш db для этой записи. Очень маловероятно, что они случайным образом изменят руководство и сопоставляют другую запись. – Chris
Я никоим образом не специалист, но как насчет хранения случайной строки для каждого адреса электронной почты и когда вы хотите удалить, проверьте, правильно ли указана эта строка по URL-адресу? – lucidbrot