код активации в письме как сделать - PullRequest
1 голос
/ 17 мая 2011

Мне нужно сделать код активации для моих пользователей. Когда пользователи регистрируются, мой php-скрипт отправляет электронное письмо пользователям, и я не знаю, как реализовать код активации или ссылку активации. Я не знаю логики для этого

Ответы [ 5 ]

11 голосов
/ 17 мая 2011

Это четырехэтапный процесс:

  1. Создать код активации
  2. Хранить в базе данных
  3. Отправьте код по электронной почте пользователю со ссылкой на скрипт проверки
  4. Проверьте код, введенный пользователем в сценарии проверки, по значению, сохраненному в базе данных.

В качестве примера реализации см.

http://www.learnphponline.com/scripts/email-activation-for-php-forms

8 голосов
/ 17 мая 2011
  1. при регистрации создайте случайную строку $user_rand;
  2. сохраните случайную строку в таблице users в столбце activation_secret, установите для столбца active значение 0
  3. хешируйте случайную строку и отправьте электронное письмо на адрес электронной почты, предоставленный пользователем, и включите ссылку на вашу страницу активации, включив хэш в качестве параметра.например, http://host.com/activate.php?activation_code=sfer3423ste&username=john
  4. в activatate.php извлекает username и activation code (который является отправленным хэшем)
  5. запрос users таблицу для записи, которая имеет active=0 и user=john, возвращают значение в activation_secrete
  6. хэш activation_secrete и сравнивают хэш с activation code из URL, если они совпадают, пользователь должен быть проверен (установите для столбца active значение1) если нет, сообщите пользователю, что код активации не распознан.

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

1 голос
/ 17 мая 2011

Я не сделал этого, но я бы подумал, что это будет выглядеть следующим образом:

  • Когда пользователь регистрируется, генерирует код активации и сохраняет его, связанный с идентификатором пользователя
  • Есть страница, которая проверяет код.при этом будет выполнен поиск кода, указанного в URL-адресе (или пользователь должен ввести его вручную в поле на странице), и выяснить, является ли он кодом, связанным с пользователем (необходимо войти в систему, чтобы увидеть эту страницу)
  • Создание URL-адреса, который переходит на указанную выше страницу и содержит код в URL-адресе.
  • , вставьте URL-адрес в электронное письмо и отправьте пользователю
0 голосов
/ 17 июня 2011

Вы также можете использовать решение без таблиц для создания одноразовых паролей. Посмотрите на http://bakery.cakephp.org/articles/ashevat/2010/03/12/how-to-implament-one-time-password-for-forgot-my-password-and-account-activation-processes

0 голосов
/ 18 мая 2011

Или вы можете просто использовать пользовательский плагин CakeDC и избежать всех этих проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...