@asdasdqwe

Как работают сессий в laravel?

Мы можем работать с сессиями так:
$request->session()->get('key');

Но если попробуем получить данные как обычно, получим ошибку
var_dump($_SESSION); // undefined variable

Если начнем сессию все работает, НО сессия пустая!!
session_start();
var_dump($_SESSION);    // array[]


Как так? Там же должны храниться _previous _token итд
  • Вопрос задан
  • 497 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
в сессии нет ничего магического.
это всего лишь кука в браузере и хранилище на сервере, где по ключу из сессии ищется массив с информацией.
вот и всё.
реализовать такое руками - дело на 5 минут.
что Лара и делает.
session() лезет в куки и берет оттуда ключ. по этому ключу лезет в хранилище (оно может быть любое - база, редис, и т.п.), достаёт из него массив, и из массива достаёт 'key'
всё просто

только два более-менее сложных момента
1. ключ в куку надо писать не абы какой а чтобы нельзя было подобрать. random_bytes в помощь, и подлиннее, штук 20.
2. чтобы не лазить в хранилище каждый раз, когда надо записать значение в сессию, можно определить функцию, которая вызывается после выполнения скрипта. и в ней уже записывать массив из скрипта в хранилище
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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