MVC? Легко.
==== Метод входа ====
Сущность - сессии авторизации.
Попытка входа - создание записи с правилами валидации. Правила валидации проверяют, что введено то, что надо, пользователь не заблокирован, пароль совпадает и т.д.
В случае удачного входа колбеком ставить куку. В куке токен, ключ от которой хранится в записи сессии в БД.
==== Поддержка сессии ====
При каждом запросе, в том числе AJAX, считываем авторизационную куку. Ищем сессию, проверяем ключ, активность сессии (истечение), права пользователя.
Можем записать в свойства пользователя, что он онлайн.
Можем записать в класс авторизованного пользователя его свойства (или хотя бы идентификатор).
==== Выход ====
Если нет куки - ничего не делать, просто редирект на главную.
Если есть кука - найти сессию и деактивировать её. Можно удалить куку. Можно не удалять, если вы собираете цифровой след - к примеру, хотите отслеживать мультиачье и т.п.