Владимир Зарыпов (krre31) wrote,
Владимир Зарыпов
krre31

Category:

Океан. Сессия

Прошёл месяц после публикации прошлой статьи про Океан, из которых две недели я стоял на месте и не мог сдвинуться. Всё из-за того, что за те десять лет, которые прошли с тех пор, как я в последний раз делал сайты, столько всего изменилось в вебе, что я никак не мог понять, а какого фига оно сейчас вообще так работает? Мне потребовалась банальная вещь - добавить поддержку сессий, чтобы можно было залогиниться и получить дополнительные права, а потом разлогиниться и лишиться прав. Но не тут-то было.

Начнём с самого начала. Мы заходим на сайт и видим каталог мандел.

По умолчанию в этом режиме мы можем только читать каталог. То, что на скриншоте показано, будто можно удалять манделы - это недоработка. На самом деле, чтобы можно было самому добавлять манделы или удалять и иметь дополнительные плюшки типа собственного профиля, надо зарегистироваться и залогиниться. Стандартая вещь для любого сайта. Нажимаем на ссылку Войти.


Вводим свой id и пароль, если аккаунт уже есть. Если его нет, то переходим в регистрацию.


Зарегистрировались и вошли. Ура! У нас появилась сессия, и вместо ссылки Войти справа вверху теперь сияет ссылка Выйти.


Казалось бы, всё работает - чего ещё для счастья  желать? Но потом мы закрываем страницу и через некоторое время заходим снова. Или того хуже, просто обновляем её, нажимая F5 или Ctrl+R. Вместо ссылки Выйти у нас снова Войти, как на первом скриншоте. Сессии больше нет, прав нет, дополнительных плюшек нет. Надо снова логиниться.

ААААААААААААААААААААААААААА!!!

Что за криворукий программист это делал??? Это что же получается, каждый раз пароль вводить надо???

Да, именно так! Будете всю жизнь вводить пароль! А этот криворукий программист погромист - Владимир Зарыпов! Знакомьтесь!

Две недели я эту сессию и так, и сяк, и в хвост её, и в гриву, а ничего не помогает. Перезагрузка страницы - и всё, шатдаун. Алё, где мои куки? Я в глубоком недоумении. Думал уже и на Angular перейти, и просто забить на сайт, и так далее...


Под конец всё-таки понял. Оказалось, куки нынче уже не те, что раньше. Они теперь, мать их, хитрожопые. Раньше ведь как было? Куки хранились в браузере. И никуда они из этого браузера деться не могли. Но теперь мы имеем не просто сайт, а SPA, который рендерится в два захода - сперва на сервере, а потом в браузере. Я-то по глупости наивной думал, что времена PHP, когда страница целиком создавалась сервером, уже давно прошли. Но времена ходят по кругу. Они походили и вернулись назад. И теперь это называется по-другому - SSR (Server Side Rendering). В тот момент, когда сервер рендерит страницу, он должен знать, залогинился пользователь или нет. А как он об этом узнает, если куки хранятся в браузере? Никак. Следовательно (внезапно!) куки должны храниться на сервере!

Короче говоря, в браузере кука так и осталась, но теперь в ней нифига нет. Там только идентификатор, а сами данные, наподобие имени пользователя, пароля или токена, хранятся на сервере. То ли просто в файлах, то ли в какой-нибудь базе данных. Когда страница загружается, браузер даёт ему идентификатор куки, сервер находит по нему данные, рендерит страницу с учётом сессии, и отдаёт браузеру, а потом браузер дорендеривает то, что осталось. И вот это хранилище куков на сервере я и не сделал. Откуда я мог знать, что оно вообще нужно?

Вот такая грустная история. Сделал это хранилище куков на сервере, и всё заработало. Но идея забить на сайт не исчезла. Сейчас с манделами такая скукота, что начинаешь задумываться, а актуально ли ещё то, что я делаю? В этом году эффекту Манделы семь лет, а может пройти ещё семь и ещё. За это время всем просто надоест следить за этими манделами. Толку от них, если всё равно ничего непонятно, а на жизнь они особого не влияния не оказывают, не считая первоначального шока от знакомства.
Tags: океан
Subscribe

Posts from This Journal “океан” Tag

  • Океан. Камбэк

    Переделал сайт, теперь для анонимов он будет в режиме чтения. Регистрация у нас по сути и так анонимная, так что не сильно большая потеря.…

  • Океан. Блэкаут

    Выключил сервер. Устал читать ругань и ненависть, которая льётся на сайте бесконечным потоком. Уже давно не обсуждают манделы и редко добавляют…

  • Океан. Манделы пользователя

    Облегчим задачу спецслужбам. Предположим, спецслужбы захотели проверить все манделы конкретного пользователя. Сделать это теперь как нельзя просто.…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments

Posts from This Journal “океан” Tag

  • Океан. Камбэк

    Переделал сайт, теперь для анонимов он будет в режиме чтения. Регистрация у нас по сути и так анонимная, так что не сильно большая потеря.…

  • Океан. Блэкаут

    Выключил сервер. Устал читать ругань и ненависть, которая льётся на сайте бесконечным потоком. Уже давно не обсуждают манделы и редко добавляют…

  • Океан. Манделы пользователя

    Облегчим задачу спецслужбам. Предположим, спецслужбы захотели проверить все манделы конкретного пользователя. Сделать это теперь как нельзя просто.…