Каким образом проходит ожидание на сервере через подтверждение по почте?

Когда нам нужно подтверждение почты, как мы на сервере или бд храним наш запрос на создание нового пользователя?
Мы держим эту запись во временном кэше сервера или создают отдельную таблицу для аккаунтов, ожидающих подтверждения?

Дополнительно:

А почему бы просто в таблице аккаунта не хранить булево поле подтверждения регистрации?

  • WbICHA правильно говорит, просто в таблице у юзера хранишь булевое значение о том что подтверждена ли почта или нет, ещё мухосранские бэкендеры бывают за место булевого делают цифры, типа 0 или 1 вахха ( тип номера, а не булевого )

    отдельную таблицу для этого создавать не стоит, если тупо подтверждение аккаунта например

  • szQocks,

    за место булевого делают цифры, типа 0 или 1 вахха

    В MySql подвезли буль? Сейчас быстро глянул доку по восьмерке, не нашел

  • Сергей delphinpro, оно хранится как 0 или 1, просто тип булевого, есть там где-то ( не храниться как true или false )

    я говорю что видел что бэкендеры хранят тип номера как 0 или 1 в бд

  • WbICHA, а если не подтвердит, как это запись после удалить?
    Ведь кто-то может ввести чужую почту, а запись после будет висеть в бд
    Или, если кто-то будет спамить регистрации несуществующими почтами?
  • Сергей delphinpro, https://dev.mysql.com/doc/refman/8.2/en/numeric-ty...

    кароче суть в том что если установлен TINYINT(1) и стоит если 1 - то true, если стоит 0 то false, а разрабы некоторые делают int вообще тип

    Каким образом проходит ожидание на сервере через подтверждение по почте?

  • Boris007, а в чём проблема достать все аккаунты с полем с нужным значением и делать с ними всякое?
  • Boris007, От спама ставят капчу.
    Неподтвержденные регистрации можете по крону удалять через какое-то время.
  • Почитал комменты и понял, что лучше иметь немного другую модель.
    Есть к примеру таблица:

    При регистрации, устанавливаем "registration_token", к примеру, через uniqid() или openssl_random_pseudo_bytes() и на почту отправляем специальную ссылку с, к примеру, гет запросом: domain.com/?email="email"&token="registration_token"
    Пользователь переходит по ссылке, в бд идет проверка, есть ли такая запись и меняет "registration_status"=1
    Почему этот вариант лучше? Потому что так ты не сможешь обойти сообщение с почты, т.к. не будешь знать, какой токен тебе выдался для подтверждения и будет недостаточно просто 1 раз увидеть пример подтверждающей ссылки, чтобы новые аккаунты активировать по определенному шаблону ссылки.

    А по "created_at" отслеживаешь старые аккаунты и удаляешь, если потребуется.

     

    Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

     

      • Каким образом проходит ожидание на сервере через подтверждение по почте?Есть ответ
      • 07.04.2024
      Ответить

      Для реализации ожидания на сервере через подтверждение по почте можно использовать следующий алгоритм:

      1. Пользователь вводит свои данные на форме и нажимает кнопку "Отправить".
      2. Данные отправляются на сервер, где они обрабатываются.
      3. Перед тем как сохранить данные в базу данных, на сервере генерируется уникальный код подтверждения (например, случайный набор символов или хэш от данных пользователя).
      4. Этот код отправляется на почту пользователя в виде ссылки или просто текста для подтверждения.
      5. Пользователь переходит по ссылке или вводит код в специальное поле на сайте.
      6. Сервер проверяет код подтверждения и, если он совпадает с сгенерированным ранее, данные пользователя сохраняются в базе данных и процесс завершается успешно.
      7. Если код подтверждения не совпадает, пользователю выводится сообщение об ошибке и процесс завершается неудачно.

      Пример кода на PHP, реализующий этот алгоритм:

      Это простой пример реализации ожидания на сервере через подтверждение по почте на PHP. Помните, что безопасность играет важную роль в подобных процессах, поэтому не забывайте обработку пользовательского ввода и защиту от атак.

    Оставить комментарий