Настройка времени сессий в php
Содержание:
Session Store Implementation
Every session store must be an and implement specific
methods. The following methods are the list of required, recommended,
and optional.
- Required methods are ones that this module will always call on the store.
- Recommended methods are ones that this module will call on the store if
available. - Optional methods are ones this module does not call at all, but helps
present uniform stores to users.
For an example implementation view the connect-redis repo.
Optional
This optional method is used to get all sessions in the store as an array. The
should be called as .
store.destroy(sid, callback)
Required
This required method is used to destroy/delete a session from the store given
a session ID (). The should be called as once
the session is destroyed.
store.clear(callback)
Optional
This optional method is used to delete all sessions from the store. The
should be called as once the store is cleared.
Optional
This optional method is used to get the count of all sessions in the store.
The should be called as .
store.get(sid, callback)
Required
This required method is used to get a session from the store given a session
ID (). The should be called as .
The argument should be a session if found, otherwise or
if the session was not found (and there was no error). A special
case is made when to act like .
store.set(sid, session, callback)
Required
This required method is used to upsert a session into the store given a
session ID () and session () object. The callback should be
called as once the session has been set in the store.
store.touch(sid, session, callback)
Recommended
This recommended method is used to «touch» a given session given a
session ID () and session () object. The should be
called as once the session has been touched.
This is primarily used when the store will automatically delete idle sessions
and this method is used to signal to the store the given session is active,
potentially resetting the idle timer.
Регистрация на сайте
Перед тем, как мы начнем добавлять аутентификацию на своем сайте, придётся добавить форму для регистрации нового аккаунта.Аккаунт — это учётная запись пользователя.
Чтобы завести аккаунт, требуется пройти регистрацию — это заполнение специальной формы, где пользователь указывает свою почту, пароль, и, возможно, дополнительную информацию.
После регистрации все данные из формы сохраняются в базе данных как есть
Но хранению паролей нужно уделить особое внимание
Хранение паролей
Пароль пользователя — это секретный набор символов, который используется в дальнейшем в ходе аутентификации. Зная пароль пользователя, злоумышленник может войти на сайт под его именем. По этой причине пароль нельзя хранить в базе в открытом виде. Ведь если информацию из БД сайта украдут, то
данные всех пользователей станут скомпрометированными.
Вместо самого пароля, в базе будут храниться их отпечатки — хэши.
Что такое хеширование
Отпечаток (хэш) — это результат работы функции хэширования, которая вернёт для любого значения строку фиксированной длины.
Используя специальный математический алгоритм, такая функция умеет преобразовывать любую переданную информацию к строке фиксированной длины (например, 32 или 64 символа). Причём любому массиву информации, будь это все статьи из Википедии, или одно слово, всегда будет соответствовать уникальный отпечаток. Повторный вызов функции для одного и того же исходника всегда возвращает один и тот же хэш.
Обратная операция (получить из отпечатка оригинал) невозможна.
Возьмём простой пример. У нас есть информация, для которой мы хотим получить отпечаток. Пусть такой информацией будет следующая строка:
«Я знаю только то, что ничего не знаю, но другие не знают и этого»
Результат обработки этой строки хэширующей функцией SHA-1 будет таким:
Хэширующие функции часто используются для контроля целостности информации при передачи по сети. Например, чтобы убедиться в том, что загруженный файл не был повреждён, достаточно получить его хэш и сравнить данный хэш с опубликованным на сайте. Если в файле поменялся хоть один байт, то эти отпечатки будут совершенно разными.
Нам же функции хэширования помогут для сравнения паролей.
Реализация регистрации пользователя
Вернёмся к форме регистрации.
Выше говорилось, что вместо пароля лучше хранить его отпечаток. Для получения отпечатка существуют множество хэшируюших функций. К счастью, нам не надо разбираться в их многообразии, потому что в PHP есть стандартная функция, которая делает ровно то, что нужно.
Вот пример как из пароля получить отпечаток, пригодный для хранения в базе:
Вызов этой функции вернёт следующую строку:
Именно это значение и следует хранить в БД, вместо пароля.
Серверный механизм управления сессией (Session, SessionState)
Разберем, как работает механизм сессии со стороны сервера и со стороны клиента.
При стандартных настройках работы состояния сеанса для отслеживания серии запросов от одного клиента используется т.н. сессионная куки (session cookie). Алгоритм следующий:
Абсолютно для каждого нового запроса на сервер (неважно, разные это клиенты или один) ASP.NET генерирует уникальный идентификатор сессии. Идентификатор сессии представляет собой случайно сгенерированное число, закодированное с помощью специального алгоритма в строку длиной 24 символа
Строка состоит из литералов от A до Z в нижнем регистре, а также чисел от 0 до 5. Пример идентификатора — hjnyuijl1pam3vox2h5i41in
Если в течение текущего запроса данные клиента НЕ сохраняются для дальнейшей работы с ним, то и время жизни сессии этого клиента заканчивается (фактически не начавшись). При этом ранее сгенерированный идентификатор сессии становится недействительным (так как не был использован). В ответ на такой запрос клиент не получает ничего, чтобы связало его с новой сессией.
Если же данные клиента (например, имя, адрес доставки товара) сохраняются на сервере, ASP.NET связывает сохраненные данные с ранее сгенерированным идентификатором сессии. Далее создается специальная сессионная куки, и в нее записывается также этот идентификатор. Эта куки добавляется в ответ на запрос и сохраняется в браузере клиента. Таким образом, создается связь клиента и его персонализированной информации на сервере. Новая сессия для данного клиента создана.
При каждом следующем запросе клиент передает на сервер персональный идентификатор сессии через куки. Сервер сопоставляет идентификаторы и «узнает» клиента в рамках текущей сессии.
До тех пор пока клиент передает свой персональный ключ, сессия считается активной. Сессия может закончиться по разным причинам, например, вручную на стороне сервера или по истечении какого-то установленного времени (таймаут).
От теории перейдем к практике. Давайте запрограммируем данный алгоритм и посмотрим, как он выполняется. Для этого используем специальный класс HttpSessionState . При работе в контроллере можно воспользоваться свойством HttpContext.Session . Работать с сессией очень просто, как с любой NameValueCollection :
В этом участке кода мы записываем в состояние сеанса имя пользователя. Это имя мы забираем с html-формы, которую он нам отправил. Дополнительно через свойства мы узнаем, создана ли эта сессия только что, то есть в рамках текущего запроса (если да, то и значение свойства IsNewSession будет равняться true), и уникальный идентификатор сессии. Этот идентификатор после обработки запроса будет автоматически записан в сессионную куки (если еще нет) и отправлен в ответе клиенту.
В браузере клиента можно наблюдать соответствующую куки и идентификатор его сессии:

В процессе следующего запроса от этого клиента давайте прочитаем его ранее сохраненное имя из сессии. Также принудительно завершим сессию. Работа с этим клиентом закончена, например, все данные обработаны и товар отправлен.
Как видно, работать с сессиями очень просто и удобно. Большинство процессов, связанных с обработкой сессии, происходит автоматически в фоновом режиме. Естественно, разработчик может вмешаться на любой стадии обработки сессии и внести свои коррективы.
Давайте посмотрим на наиболее интересные свойства и методы класса HttpSessionState , которые чаще всего используются в работе:
Item – возвращает элемент данных по его индексу Item – возвращает элемент данных по его ключу Remove(index) – удаляет элемент данных по его индексу Remove(key) – удаляет элемент данных по его ключу Clear() – удаляет все данные Count – возвращает общее количество элементов данных для текущей сессии Abandon() – принудительно завершить сессию SessionID — возвращает идентификатор текущей сессии IsNewSession – возвращает true если сессия была создана в рамках текущего запроса Timeout – возвращает число минут, допустимое между запросами, перед тем как сессия завершится по причине таймаута (по умолчанию, 20 минут)
Изменить настройки для сессии можно либо программно в коде посредством членов класса HttpSessionState , либо через конфигурацию приложения (файл web.config). Например:
В конфигурации выше мы указали, что таймаут сессии будет 40 минут, сессионные данные пользователя будут храниться в оперативной памяти, будут использоваться сессионные куки, также поменяли стандартное название такой куки на собственное.
Создание сессии
Общий принцип работы сессий рассматривался в прошлом уроке. Из него стало ясно, что PHP связывает данные, хранимые на сервере, и конкретного пользователя с помощью записи уникального идентификатора в cookie. Все сессионные данные доступны через суперглобальный массив $_SESSION. Однако прежде чем осуществлять запись или чтение данных из него, нужно явным образом создать сессию.
В PHP есть специальная функция session_start(). Она осуществит проверку присланных заголовков HTTP-запроса на наличие cookie с идентификатором сессии. Если идентификатор отсутствует, будет создана новая сессия, иначе функция откроет обработчики чтения-записи и синхронизирует текущие сеансовые данные с массивом $_SESSION. Функция возвращает булево значение true в случае успешного завершения, а false, если произошли ошибки.
Как вы уже знаете, настройка сессий происходит с помощью конфигурационного файла php.ini. Для этого используется ряд директив, с полным списком которых вы ознакомитесь на странице официальной документации.
Начиная с версии PHP 7.0 эти настройки могут быть переопределены динамически за счет передачи в функцию session_start() массива, ключами которого являются имена директив без слова session (см. пример).
//если пользователь не будет 10 секунд посылать запросы //на сервер, его сессия будет автоматически удалена session_start(); if (isset($_SESSION)) { $difference = time() — $_SESSION; echo «От старта сессии прошло {$difference}сек»; } else { $_SESSION = ; echo ‘Создана новая сессия’; }
Заметка Параметр функции session_start() является необязательным. На практике необходимость переопределения каких-либо настроек не встречается.
Примеры TempData
Рассмотрим следующую страницу, которая создает клиент:
На следующей странице отображается :
В предыдущей разметке в конце запроса не удаляется, так как используется . На обновляемой странице отображается .
Следующая разметка похожа на приведенный выше код, но в ней используется для сохранения данных в конце запроса:
При переходе между страницами IndexPeek и IndexKeep не удаляется.
Следующий код отображает , но в конце запроса удаляется:
Поставщики TempData
Поставщик TempData, основанный на файлах cookie, используется по умолчанию для хранения TempData в файлах cookie.
Данные файлов cookie шифруются с помощью IDataProtector с кодировкой с использованием Base64UrlTextEncoder и последующей фрагментацией. Так как файл cookie фрагментируется, ограничение на размер одного такого файла cookie, заданное в ASP.NET Core 1.x, не применяется. Данные файла cookie не сжимаются, так как сжатие зашифрованных данных может привести к проблемам с безопасностью, например атакам CRIME и BREACH. Дополнительные сведения о поставщике TempData, основанном на файлах cookie, см. здесь: CookieTempDataProvider.
Выбор поставщика TempData
Выбор поставщика TempData включает в себя несколько аспектов:
- Приложение уже использует состояние сеанса? Если это так, использование поставщика TempData для состояния сеанса не требует от приложения никаких дополнительных издержек (кроме объема данных).
- Приложение использует TempData лишь ограниченно, для сравнительно небольших объемов данных (до 500 байт)? Если это так, поставщик TempData на основе файлов cookie незначительно увеличивает издержки для каждого запроса, переносящего TempData. В противном случае поставщик TempData для состояния сеанса удобно использовать, чтобы устранить круговой обход большого объема данных в каждом запросе до полного использования TempData.
- Приложение выполняется на ферме серверов на нескольких серверах? Если это так, не требуется дополнительная настройка для использования поставщика TempData для файлов cookie, за исключением защиты данных (см. статьи ASP.NET Core Защита данных и Поставщики услуг хранилищ ключей).
Примечание
Большинство веб-клиентов (например, веб-браузеры) налагают ограничение на максимальный размер каждого файла cookie и (или) общее количество файлов cookie. При использовании поставщика TempData на основе файлов cookie убедитесь, что приложение не нарушает эти ограничения. Учитывайте общий объем данных. Учитывайте увеличение размеров файла cookie в результате шифрования и фрагментирования.
Настройка поставщика TempData
Поставщик TempData на основе файлов cookie включен по умолчанию.
Чтобы включить поставщик TempData на основе сеанса, используйте метод расширения AddSessionStateTempDataProvider.
Порядок ПО промежуточного слоя важен. В предыдущем примере исключение возникает при вызове после . Дополнительные сведения см. в разделе .
Важно!
Если вы ориентируетесь на .NET Framework и используете поставщик TempData на основе сеансов, добавьте в проект пакет Microsoft.AspNetCore.Session.
Взаимодействие с сессией
Получение данных
В Laravel есть два основных способа работы с данными сессии: через глобальный помощник или через экземпляр . Во-первых, давайте посмотрим на доступ к сессии через экземпляр , тип которого может быть объявлен в замыкании маршрута или методе контроллера. Помните, что зависимости методов контроллера автоматически внедряются через контейнер служб Laravel:
Когда вы извлекаете элемент из сессии, вы также можете передать значение по умолчанию в качестве второго аргумента метода . Это значение по умолчанию будет возвращено, если указанный ключ не существует в сессии. Если вы передаете замыкание в качестве значения по умолчанию методу , а запрошенный ключ не существует, то будет выполнено замыкание с последующим возвратом его результата:
Глобальный помощник
Вы также можете использовать глобальную помощник для получения / сохранения данных сессии. Когда помощник вызывается с одним строковым аргументом, тогда он возвращает значение этого ключа сессии. Когда помощник вызывается с массивом пар ключ / значение, эти значения сохраняются в сессию:
Определение наличия элемента в сессии
Чтобы определить, присутствует ли элемент в сессии, вы можете использовать метод . Метод возвращает , если элемент присутствует, и не равен :
Чтобы определить, присутствует ли элемент в сессии, даже если его значение равно , то вы можете использовать метод :
Сохранение данных
Для сохранения данных в сессии вы обычно будете использовать метод экземпляра запроса или помощника :
Добавление в массив значений сессии
Метод используется для вставки нового значения в значение сессии, которое является массивом. Например, если ключ содержит массив названий команд, то вы можете поместить новое значение в массив следующим образом:
Увеличение и уменьшение отдельных значений в сессии
Если данные вашей сессии содержат целое число, которое вы хотите увеличить или уменьшить, то вы можете использовать методы и :
Кратковременные данные
По желанию можно сохранить элементы в сессии только для следующего запроса. Вы можете сделать это с помощью метода . Данные, хранящиеся в сессии с использованием этого метода, будут доступны немедленно и во время следующего HTTP-запроса. После следующего HTTP-запроса данные будут удалены. Кратковременные данные в первую очередь полезны для краткосрочных статусных сообщений:
Если вам нужно сохранить кратковременные данные для нескольких запросов, то вы можете использовать метод , который сохранит все данные для дополнительного запроса. Если вам нужно сохранить конкретные кратковременные данные, то вы можете использовать метод :
Чтобы сохранить ваши кратковременные данные только для текущего запроса, вы можете использовать метод :
Пересоздание идентификатора сессии
Пересоздание идентификатора сессии часто выполняется для предотвращения использования злоумышленниками атаки, называемой фиксацией сессии, на ваше приложение.
Laravel автоматически пересоздает идентификатор сессии во время аутентификации, если вы используете один из стартовых комплектов приложений Laravel или Laravel Fortify; однако, если вам необходимо вручную повторно сгенерировать идентификатор сессии, то вы можете использовать метод :
Если вам нужно повторно сгенерировать идентификатор сессии и удалить все данные из нее одним выражением, то вы можете использовать метод :
Всё об удалении сессии в php
- -> перезагрузка
- -> перезагрузка
-
Начнем наверное с самой простой темы — удаление определенной сессии при перезагрузке страницы.
Для понимания, как удалить определенную сессию, нам понадобится:
Скачать данный пример удаления сессии при
Наша определенная сессия будет выглядеть так:
$_SESSION = 1;
Подробнее о создании сессии см. -> здесьРазрушить/удалить определённую сессию можно несколькими способами:
Один из вариантов использовать unset
unset($_SESSION);
Иногда по неизвестным причинам функция unset отказывается работать! Тогда можно воспользоваться таким способом:
$_SESSION=»»;
-
Чем отличается удаление сессии по клику кнопки м удалении сессии при перезагрузкее -> логичный ответ наличием кнопки !
Мы возьмем приведенный пример выше и всего лишь чуть его модернизируем!
Как и раньше, чтобы разобраться, нам для данного параграфа понадобится!
Этот же пример в архиве на странице
Далее разберем, как работает скрипт удаления сессии по клику!
Как и ранее запускаем сессии :
session_start();
Условие первой линии, если сессия существует, то внутри расположим условие второй линии:
if ($_SESSION)
Иначе(else) первой линии:
$rezult = ‘Нельзя удалить то, что не существует! Нужно создать сессию’;
Условие второй линии(внутри первого если(if))
1). Если $_POST существует:
2). Удаляем сессию -> $_SESSION
3). Если сессия удалена, выводим результат -> $rezult
4). Перезагружаем принудительно -> meta
if ($_POST)
{
$_SESSION=»;
if (!$_SESSION) { $rezult = ‘Сессия $_SESSION удалена’; }
echo ‘<meta http-equiv=»refresh» content=»2; url=»></head>’;
}Иначе(else) второй линии, сработает в том случае, если сессия все еще существует, но кнопка удалить не нажата!
Выводим кнопку удалить сессию!
$rezult = ‘Сессия $_SESSION существует — её можно удалить’;
$form = ‘<form method=»post»>
<input type=»submit» name=»submit» value=»Удалить сессию PRIMER»>
</form> ‘;Соберем весь код вместе:
Этот код в архиве на странице
Как автоматически продлевать сессии
Если сессия выдается на определенный период и заканчивается в определенное время, это может привести к прерыванию активного сеанса пользователя. Гораздо удобнее, если время действия сессии будет автоматически продлеваться, если посетитель обновляет страницу. Для этого существует параметр cookie_lifetime, который во всех примерах выше мы задавали в значении 0.
Если мы зададим значение cookie_lifetime 86400, то через 24 часа сессия прервется. Это не всегда удобно.
Если есть необходимость в контроле и прерывании сессии, можно воспользоваться php-функцией session_destroy().
Пример кода страницы, где сессия запущена
<? session_start(); ?>
<!DOCTYPE html><head><html lang=»ru»><meta charset=»UTF-8″><title>Пример скрипта Проверить запущена ли сессия php — сессия запущена</title>
<link rel=»stylesheet» type=»text/css» href=»https://dwweb.ru/__a-data/__all_for_scripts/__examples/__examples.css»>
</head>
<body>
<blockCenter>
<h2>Пример скрипта Проверить запущена ли сессия php </h2>
Здесь — сессия запущена
<l>Результат</l>
<div class=»kod»>
<red><? if ($_SESSION) { echo ‘Сессия уже запущена ранее…’; } else { echo ‘Сессия не существует…’; } ?></red>
</div>
</blockCenter>
</body>
</html>
Что такое сессия в PHP?
Известно, что веб-сервер не поддерживает постоянного соединения с посетителем, и каждый запрос обрабатывается, как новый, без связи с предыдущими. А это означает, что сервер не может запоминать конкретного посетителя между несколькими запросами, т.е. при доступе к веб-странице сервер отвечает за предоставление содержимого только конкретной запрашиваемой страницы.
Часто возникает необходимость отображать информацию определенного пользователя на всех страницах и, при этом, вам нужно аутентифицировать пользователя в каждом запросе. Представьте, что вам нужно было бы вводить логин и пароль пользователя на каждой странице, где была представлена ваша информация о профиле. Это было бы вообще не практично, и именно в таких случаях необходимы сессии.
Переменные сессии решают эту проблему, сохраняя информацию о пользователе, которая будет использоваться на нескольких веб-страницах (например, логин посетителя, любимая музыка и др.). По умолчанию переменные сессии действуют до тех пор, пока пользователь не закроет браузер.
Одним из недостатков файлов является то, что они хранятся на компьютере пользователя. Это дает пользователю возможность получать доступ, просматривать и изменять этот файл cookie, что может привести к сбою приложения. PHP, наоборот, хранят в системе пользователя только идентификационный файл cookie, который используется для ссылки на файл сессии на сервере. Таким образом, пользователь не имеет доступа к содержимому файла сессии, тем самым обеспечивая безопасную альтернативу файлам cookie. Сессии PHP также работают, когда пользователь отключает поддержку файлов cookie браузером.
Сеанс создает файл во временном каталоге на сервере, где хранятся зарегистрированные переменные сеанса и их значения. Эти данные будут доступны для всех страниц сайта во время этого посещения.
Сессия создает файл во временном каталоге на сервере, где хранятся зарегистрированные переменные сессии и их значения. Эти данные будут доступны для всех страниц сайта во время этого посещения пользователем.
Расположение временного файла определяется настройкой в файле php.ini в директиве .
Пример использования в файле php.ini:
session.save_path = «/var/www/my_site/data/tmp»
Изменить директорию для хранения файлов сессий можно добавив в файл .htaccess:
php_value session.save_path «/var/www/my_site/data/tmp»
Перед использованием любой переменной сеанса убедитесь, что вы установили этот путь.
Когда сессия стартует, происходит следующее:
-
Сначала PHP создает уникальный идентификатор для этой конкретной сессии, который представляет собой случайную строку из 32 шестнадцатеричных чисел, например 5c9foj24c3jj973hjkop2fc937e3463.
-
Файл cookie под названием автоматически отправляется на компьютер пользователя для хранения уникальной строки идентификации сессии.
-
Файл автоматически создается на сервере в назначенном временном каталоге и имеет имя уникального идентификатора с префиксом sess_, т.е. sess_5c9foj24c3jj973hjkop2fc937e3463.
Когда сценарию PHP нужно получить значение из переменной сессии, PHP автоматически получает строку уникального идентификатора сессии из файла cookie , а затем ищет в своем временном каталоге файл c этим именем и проверка может быть выполнена путем сравнения обоих значений.
С помощью специальных функций мы можем получить данный идентификатор:
echo session_id(); // идентификатор сессии
echo session_name(); // имя — PHPSESSID
То же значение мы могли бы получить, обратившись к cookie напрямую:
echo $_COOKIE;
Сессия заканчивается, когда пользователь закрывает браузер или покидает сайт, сервер завершает сеанс через заранее определенный период времени, обычно продолжительностью 30 минут.
Сессии
РНР-сессии
дают возможность работать с информацией о пользовательской сессии. Вы можете создавать приложения, которые идентифицируют и собирают
информацию о пользователях.
Сессии могут начинаться разными способами. Мы не будем углубляться в технические тонкости, а сконцентрируемся на варианте, когда
сессия начинается с сохранения значения. Сессия заканчивается/загибается (dies), если пользователь не запрашивает страниц в течение
какого-то времени (стандартное значение — 20 минут). Разумеется, вы в любой момент можете закончит/убить сессию в вашем скрипте.
Скажем, 50 пользователей просматривают страницы одного сайта, например, вэб-шоп. Информацию о том, что у каждого посетителя в
корзине, лучше всего сохранить в сессии. Чтобы идентифицировать пользователей, сервер использует уникальные пользовательские
идентификаторы/user ID, которые хранятся в куках. Кука это небольшой текстовый файл, хранимый на компьютере пользователя (см.
Урок 13). Следовательно, сессии часто требуют поддержки кук в браузерах пользователей.
Добавление собственных драйверов сессии
Реализация пользовательского драйвера
Если ни один из существующих драйверов сессии не соответствует потребностям вашего приложения, то Laravel позволяет написать собственный обработчик сессии. Ваш собственный драйвер сессии должен реализовывать , встроенный в PHP. Этот интерфейс содержит всего несколько простых методов. Заготовка реализация MongoDB выглядит следующим образом:
Поскольку цель этих методов не совсем понятна, давайте быстро рассмотрим, что делает каждый из этих методов:
- Метод обычно используется в файловых системах хранения сессии. Поскольку Laravel поставляется с драйвером сессии, за редким исключением вам понадобится что-либо вставлять в этот метод. Вы можете просто оставить этот метод пустым.
- Метод , как и метод , также обычно не учитывается. Для большинства драйверов в этом нет необходимости.
- Метод должен возвращать строковую версию данных сессии, связанных с переданным . Нет необходимости выполнять сериализацию или другое кодирование при получении или хранении данных сессии в вашем драйвере, поскольку Laravel выполнит сериализацию за вас.
- Метод должен записать переданную строку , связанную с , в какую-нибудь постоянную систему хранения, такую как MongoDB или другую систему хранения по вашему выбору. Опять же, вам не следует выполнять сериализацию – Laravel сделает это за вас.
- Метод должен удалить данные, связанные с из постоянного хранилища.
-
Метод должен уничтожить все данные сессии, которые старше указанного , которое является временной меткой UNIX. Для самоуничтожающихся систем, таких как Memcached и Redis, этот метод можно оставить пустым.
Регистрация пользовательского драйвера
Как только ваш драйвер будет реализован, вы готовы зарегистрировать его в Laravel. Чтобы добавить дополнительные драйверы в серверную часть сессии Laravel, вы можете использовать метод фасада . Вы должны вызвать метод в методе поставщика службы. Вы можете сделать это в уже существующем или создать совершенно новый поставщик:
После регистрации драйвера сессии вы можете использовать драйвер в конфигурационном файле .