Привет, я ищу создать простую систему «Забыли пароль», используя CakePHP, где пользователь вводит свое имя пользователя / адрес электронной почты, а затем получает электронное письмо со ссылкой, которую они могут щелкнуть, чтобы создать новый пароль.
Я Googled вокруг, но ничего не нашел: /
Использование CakePHP 1.3
reset_password
контроллера reset_password
. reset_password
контроллера reset_password
найдите this->data['User']['email']
и сохраните адрес электронной почты в таблице базы данных. key
или token
. Это поле должно быть CHAR (40). В действии reset_password
сделайте $key = Security::hash(String::uuid(),'sha1',true)
чтобы создать ключ или хэш и сохранить его в поле key
или token
. $url = Router::url( ($this->here), true ).'/'.$key
внутри действия reset_password
контроллеров. Это создаст URL-адрес на основе текущего действия и добавит к нему ключевой параметр, который вы можете проверить в этой же функции, когда пользователь нажимает ссылку по электронной почте. Email
чтобы фактически отправить электронное письмо, включая сгенерированный URL-адрес выше в теле сообщения. Этого должно быть достаточно, чтобы вы шли в правильном направлении.
Вы можете взглянуть на два готовых решения, которые могут удовлетворить ваши требования:
Spark Plug by Jedt – https://github.com/jedt/spark_plug
Плагин для пользователей от CakeDC – https://github.com/CakeDC/users
Оба имеют функцию «Забыли пароль». Вы можете включить один из плагинов в свой проект, тем самым полностью воспользовавшись всем кодом, или просто попробуйте их код для того, как заставить его работать в рамках вашего собственного проекта.