Я предполагаю, что вы делаете это для своей выгоды, то есть для чисто самообразовательных целей.Если нет, то вы, вероятно, изобретаете велосипед - я с трудом могу себе представить, что у codeigniter пока нет полноценного решения для регистрации.Тем не менее, если вы действительно хотите создать библиотеку, обрабатывающую регистрацию пользователей, учтите следующее:
- Не передавайте параметры формы регистрации как часть URL-адреса.http://example.com/user/register/joe@mail.com/joesPassword явно плохой пример и огромная дыра в безопасности.Используйте «post» метод для вашей формы, чтобы передать переменные в ваш контроллер.
- Используйте проверку на стороне клиента, желательно с готовым решением javascript, основанным на jquery, mootools, yui и т. Д. - что угодно,ваши предпочтения библиотеки JS.Использование проверки на стороне клиента экономит время и нервы для ваших будущих пользователей.Проверьте наличие имени пользователя, надежность пароля, действительность адреса электронной почты (через регулярное выражение), соответствие пароля для поля подтверждения пароля.Проверка на стороне клиента относится к части «view» вашей библиотеки.
- Используйте хешированный секрет сайта в качестве скрытого ввода в вашей форме.
- Используйте для своей формы доступную капчу.
- Сделайте ваши формы липкими, основываясь на сессии.Если ваш пользователь заполняет форму, уходит до завершения регистрации и возвращается к форме, ему / ей должны быть представлены ранее заполненные значения.
- Включить стороннюю регистрацию.Пользователи должны иметь возможность зарегистрироваться на вашем сайте через свои сторонние учетные записи - включите openID и facebook как минимум в вашу регистрационную форму как минимум
- Используйте проверку на стороне сервера, проверьте правильность содержимого всего поля, экранируйте все пользовательские данные,Проверка на стороне сервера относится либо к контроллеру, либо к части модели вашей библиотеки, я бы предпочел поместить ее в модель.
- Создать настраиваемый рабочий процесс.Если вы пытаетесь создать гибкую библиотеку, вам придется учитывать различные потребности рабочего процесса регистрации.Некоторые пользователи вашей библиотеки захотят проверить учетную запись вручную, прежде чем включить пользователя на свой сайт.Другие захотят автоматически включить пользователей, как только они подтвердят свой запрос по электронной почте.
- Не указывайте, какие поля являются частью регистрационной формы.Как правило, чем меньше, тем больше, когда дело доходит до регистрации, поэтому вам нужно будет иметь минимальный минимальный набор полей при регистрации пользователей (в противном случае они просто скажут: «Хаха, вы просите девочку моей мамы»).имя? нет, спасибо ").Тем не менее, вы создаете библиотеку , поэтому пользователи вашей библиотеки должны решить, какие поля будут включены в регистрационную форму
- В качестве дополнения к предыдущему пункту создайте гибкий API для определенияполя формы регистрации, типы и правила проверки.
Я уверен, что есть намного больше руководств, я не упомянул пользовательские представления для мобильных устройств и, вероятно, намного больше.Но вышесказанное должно дать вам старт в правильном направлении.
А что касается этой части вашего вопроса: «Я иду по правильному пути здесь, или библиотека должна выполнить всю работу, а контроллер простодействовать, чтобы получить и передать запрос?- это вопрос предпочтения IMO, но я бы использовал контроллер для выполнения общих задач, то есть для синтаксического анализа значений форм и их экранирования, и передавал эти предварительно обработанные значения в модель, где происходит фактическая (семантическая) проверка.