CodeIgniter: функция потерянного пароля, как реализовать?

У моего клиента есть сайт, работающий на CodeIgniter (я его не создал и мало знаю о CI), и они хотели бы добавить функцию потерянного пароля, и я не знаю, как подойти к реализации этой функции с использованием CI. Я знаю PHP с большей частью моего опыта работы с WordPress.

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

Вот как я его реализую:

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

CI – это PHP, поэтому вы просто реализуете его так же, как и в других проектах PHP, за исключением того, что вы будете делать в контроллерах / моделях / представлениях.

Хороший способ ИМХО:

  • Если пользователь забудет свой pwd, ему понадобится новый pwd. На этом этапе вы должны сохранить хэш и временную метку в db
  • Отправьте электронное письмо пользователю, содержащему ссылку на сайт reset с его хешем, хранящимся в db как get-param (например, здесь hash здесь example.de/reset-pw/[user)
  • если пользователь следует этой ссылке, сайт проверяет прошедшее время между запросом и использованием этой ссылки (большинство сайтов допускают разницу во времени около одного дня)
  • если каждый из них действителен, пользователь может ввести новый pw

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

CodeIgniter – это регулярная php-структура, которая следует за шаблоном MVC.

У него нет встроенной библиотеки auth.

Вам нужно будет использовать некоторую стороннюю библиотеку. Один из лучших – Ion-auth. https://github.com/benedmunds/CodeIgniter-Ion-Auth

Howwer – если это уже существующий сайт, где люди могут зарегистрироваться, вероятность того, что некоторая библиотека auth уже реализована. Я бы посмотрел в папке system / application / libraries (или иногда / application / libraries), чтобы увидеть, какие библиотеки там, и оттуда.