Я пытаюсь понять, как приложения PHP проверяют, вошел ли пользователь в систему. Я специально просматриваю код mediawiki, чтобы попытаться помочь мне понять, но эти случаи должны быть довольно распространены во всех приложениях php.
Из того, что я понял, основные случаи:
Пользователь только что вошел в систему или был создан, каждый раз, когда они посещают страницу, PHP узнает о них, проверяя данные, общие для переменной $ _SESSION и файла cookie.
У пользователя давно была отмечена опция «запомнить меня» на странице входа. У них на компьютере есть файл cookie с идентификатором токена, который проверяется токеном на сервере для их аутентификации. В этом случае переменная сеанса отсутствует, поскольку время между обращениями может быть неделями.
У меня вопрос: что происходит, когда пользователь вошел в систему, но сеанс PHP завершился, и он хочет получить доступ к странице? Я бы предположил, что у сервера нет простого способа узнать, кто этот человек, и что его придется перенаправить на страницу входа.
Тем не менее, mediawiki делает именно это. Я проверил, что файлы сеанса удаляются через X минут, но когда я нажимаю «Обновить» в MediaWiki, он знает, какой я пользователь, и переменная «token» не включена в файл cookie.