Распишу подробнее.
Итак имеем 2 недостатка 1) лишняя проверка на существование файла. 2) затраты на создание этого флаг файла и очистку.
Идея
здесь. Создаём хэш как
$expire = time() + 3600; //Время, на которое даём доступ
$hash = $expire.':'.md5($secret . $expire); // Вот это шлём в куки значение
Дальше в nginx на луа, перле или модулём делаем
// Это псевдокод
list( $expire, $md5 ) = explode( $cookieValue );
if( $cookieValue == $expire.':'.md5($secret . $expire) && $expire >= time() ) {
// Авторизированы
} else {
// Не авторизированы
}
У вышеописаной идеи есть недостаток — нужно либо иногда обновлять куку, либо ставить длинное время жизни сессии. Но обращений к диску нет.