CodeIgniter: функция утерянного пароля, как реализовать? - PullRequest
5 голосов
/ 16 декабря 2010

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

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

Ответы [ 3 ]

14 голосов
/ 16 декабря 2010

Вот как я бы это реализовал:

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

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

3 голосов
/ 16 декабря 2010

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

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

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

2 голосов
/ 16 декабря 2010

CodeIgniter - это регулярная структура PHP, который следует MVC шаблону

1002 * Он не имеет встроенной в библиотеке Идента 1004 * Вы должны использовать некоторые библиотеки сторонних производителей...Одним из лучших является ионно-авт.https://github.com/benedmunds/CodeIgniter-Ion-Auth 1007 * Howewer - если это существующий сайт, где люди могут зарегистрироваться на сайте - есть вероятность, что некоторые аутентификации библиотека уже реализована.Я хотел бы посмотреть под системы / приложения / библиотеки (или иногда / / библиотеки приложений) папку, чтобы увидеть, что библиотеки там и идти оттуда.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...