CakePHP Забыли пароль?

Привет, я ищу создать простую систему «Забыли пароль», используя CakePHP, где пользователь вводит свое имя пользователя / адрес электронной почты, а затем получает электронное письмо со ссылкой, которую они могут щелкнуть, чтобы создать новый пароль.

Я Googled вокруг, но ничего не нашел: /

Использование CakePHP 1.3

  1. Отобразить представление с формой, чтобы пользователь мог ввести свой адрес электронной почты.
  2. Отправьте сообщение формы в reset_password контроллера reset_password .
  3. В reset_password контроллера reset_password найдите this->data['User']['email'] и сохраните адрес электронной почты в таблице базы данных.
  4. В этой же таблице базы данных должно быть поле key или token . Это поле должно быть CHAR (40). В действии reset_password сделайте $key = Security::hash(String::uuid(),'sha1',true) чтобы создать ключ или хэш и сохранить его в поле key или token .
  5. Чтобы сгенерировать URL, введите $url = Router::url( ($this->here), true ).'/'.$key внутри действия reset_password контроллеров. Это создаст URL-адрес на основе текущего действия и добавит к нему ключевой параметр, который вы можете проверить в этой же функции, когда пользователь нажимает ссылку по электронной почте.
  6. Вам также необходимо настроить компонент Email чтобы фактически отправить электронное письмо, включая сгенерированный URL-адрес выше в теле сообщения.

Этого должно быть достаточно, чтобы вы шли в правильном направлении.

  • Спросите пользователя о своей электронной почте.
  • Создайте случайную строку достаточной длины, сохраните ее в своей базе данных и отправьте ее по электронной почте в качестве ссылки вместе с электронной почтой. Сделайте это истечет через 24 часа. Скажите им, чтобы они игнорировали электронное письмо, если они не запрашивали новый пароль.
  • Сопоставьте электронную почту и строку в базе данных. Представьте им форму для ввода нового пароля или отправьте им новый пароль (другая случайная строка).

Вы можете взглянуть на два готовых решения, которые могут удовлетворить ваши требования:

Spark Plug by Jedt – https://github.com/jedt/spark_plug

Плагин для пользователей от CakeDC – https://github.com/CakeDC/users

Оба имеют функцию «Забыли пароль». Вы можете включить один из плагинов в свой проект, тем самым полностью воспользовавшись всем кодом, или просто попробуйте их код для того, как заставить его работать в рамках вашего собственного проекта.