@targyn

Как подтвердить запрос на добавление записи в бд через почту?

Подскажите куда копать, если я хочу реализовать процесс подтверждения на добавление записи в бд через почту. То есть человек оставляет какие то данные на сайте и отправляет. И прежде чем данные добавлялись в бд данные нужно присылать на почту и при подтверждении через почту, добавлялся в бд.
  • Вопрос задан
  • 219 просмотров
Решения вопроса 2
irishmann
@irishmann
Научись пользоваться дебаггером
Я бы сделал так. Сразу писать в бд, поставить дополнительное поле verify, по умолчанию false. Скрипт записывает в базу, получает идентификатор записи, формирует ссылку на скрипт подтверждения и отправляет на почту. Скрипт подтверждения получает только идентификатор записи и ставит true в поле verify. Везде где нужно реализовать проверку verify. Периодически, либо cron, либо вручную чистить бд.
Ответ написан
Комментировать
А до подтверждения они где будут храниться?
Я думаю можно сделать так:
Клиент отправляет данные через форму. Данные из формы сохраняются в БД, в этой\другой таблице создаем статус и код подтверждения. Клиенту приходит на почту ссылочка с подтверждением, в ссылочке содержится код подтверждения (а лучше хеш). Срабатывает контроллер, проверяет код, если всё совпадает, то данные подтверждаются. Еще можно сделать проверку, если в течение 24 часов данные не подтвердились, то удаляем и данные и код. Может быть еще есть нюансы
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Данные, если их немного, можно сразу по получении записать GET-параметрами к ссылке подтверждения, добавить поле с датой заполнения и подпись - хэш от (все данные + адрес почты + известная только сайту соль) и отправить на эту почту. По ссылке проверять, сойдется ли хэш и свежа ли дата. Если все ок - тогда и писать в базу.
Никакого промежуточного хранилища не понадобится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект