Как добавить в кешированную страницу данные авторизованного пользователя?

Столкнулся с проблемой кеширования статики при помощи nginx.
На кешируемой странице присутствуют данные авторизованного пользователя их естественно кешировать нельзя, поэтому приходится вставлять их при помощи SSI.
То есть в html коде страницы присутствует SSI вставка вида:
<--#include virtual="/user/render"-->
При отдаче страницы nginx обнаружив SSI вставку обратится по указанному адресу и заменит SSI полученным ответом.

В принципе это работает, но хотелось бы узнать как аналогичный функционал можно сделать по другому?

Вариант с загрузкой данных пользователя при помощи js не очень нравится, так как сначала пользователю будет казаться, что он не авторизован (примерно так работает aliexpress).
  • Вопрос задан
  • 2228 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Я делаю javascript'ом. Чем не нравится решение? В том месте в шапке сайта, где у нас аватар + имя пользователя и иконка его меню, я вывожу по умолчанию "заглушку" и вращающийся спиннер. Проверяем куку локальную, если авторизован - выводим туда аватар + имя, не авторизован - выводим ссылки на вход и регистрацию. Если это сделать с легкой анимацией, то смотрится вполне отлично. Если куки нет, то эту "заглушку" может быть видно 0.5-3 секунды, зависит от того как долго будет срикпт с сервером общаться, если же кука есть, то чаще всего вообще никто ничего не заметит. Дабы сократить FOUC данный скрипт стоит в самом хтмл прямо в том месте где надо. Чтобы не ждать всех загрузок и т.д. а выполниться максимально быстро.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега PHP
♬♬
Как вариант — JS сразу может предположить, что юзер авторизован — по кукам.

Мне не понятно, чем плох существующий вариант с SSI.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы