Вы можете использовать оба.
Используйте переменную сеанса в качестве первой проверки, чтобы вы сразу отклонили любой запрос, если переменная сеанса не установлена. Это избавляет от необходимости выполнять дорогостоящую проверку базы данных на случайные запросы о постучании в дверь.
Но если он установлен, вам все равно придется выполнить проверку базы данных, чтобы убедиться, что сеанс входа пользователя в систему все еще действителен. Когда пользователь входит в систему, создайте случайный токен и сохраните его в переменной сеанса и базе данных. При обработке нового запроса проверьте, соответствует ли переменная сеанса тому, что находится в БД. Если администратор хочет заставить пользователя выйти из системы, он просто делает эту запись базы данных недействительной.