CakePHP Забыли пароль - PullRequest
       1

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

3 голосов
/ 16 мая 2011

Привет! Я ищу создание простой системы Forgot Password, используя CakePHP, где пользователь вводит свое имя пользователя / адрес электронной почты, а затем получает электронное письмо со ссылкой, по которой он может щелкнуть, чтобы создать новый пароль.

Я погуглил, но ничего не нашел: /

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

Ответы [ 3 ]

12 голосов
/ 18 мая 2011
  1. Отображение представления в форме, чтобы пользователь мог ввести свой адрес электронной почты.
  2. Публикация формы для действия контроллера reset_password.
  3. В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 выше в теле сообщения.

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

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

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

Свеча зажигания от Jedt - https://github.com/jedt/spark_plug

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

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

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