Если пользователь зашел на сайт и не авторизировался, то проверить его невозможно. По какому критерию проверять Гостя? По IP? Не надежно.
Полагаю, вы усложняете задачу - гостя проверять не нужно.
Сегодня AUP позволяет начислить баллы новому пользователю за прохождение регистрации. Таким образом его баланс не будет равен нулю. Когда этот показатель станет равен или меньше нуля, то необходимо сделать logout.
Вы правы, проверять условие можно и на этапе авторизации:
Если гость - работает алгоритм AUP
Если зарегистрированный пользователь - работает наше условие.
А можно - и в процессе работы:
Если баланс меньше или равен нулю - logout.
Второй вариант более логичный.