Как лучше реализовать механизм работы с пользователями на CodeIgniter?
Здравствуйте!
Разрабатываю проект на CodeIgniter, настало время прикрутить к нему механизм работы с пользователями.
Хочу поинтересоваться, возможно вы посоветуете уже готовые решения или готовые подходы к реализации такого механизма.
Необходимый функционал весьма предсказуемый: логин, логаут, авторизация через наш сайт в сторонних сервисах (Google, Facebook), авторизация/регистрация на нашем сайте через сторонние сервисы (Google, Facebook), хранение информации о пользователе, хранение разной информации (из разных таблиц) в контексте пользователя и т.п.
Если разбивать вопрос на более мелкие:
1) Какие посоветуете готовые библиотеки/контроллеры реализующие данный функционал?
2) Какие статьи, описывающие как выглядит такой механизм и как его реализовать, посоветуете прочитать?
3) Если реализовывать его вручную, какие моменты важно не опустить (может есть что-то неочевидное)?
4) Прочие технические подробности: должен ли юзер быть моделью, должен ли быть для работы с юзерами отдельный контроллер, как связывать информацию из разных таблиц с юзером, как в данном контексте грамотно использовать встроенный механизм Cookies в CodeIgniter?
З.Ы. HMVC-надстройки к CodeIgniter'у в моем случае использовать крайне нежелательно.