overtrue / laravel-stateless-session
一个轻量级中间件,使API路由能够支持会话。
2.0.0
2022-02-14 06:17 UTC
Requires
- laravel/framework: ^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- jetbrains/phpstorm-attributes: ^1.0
- mockery/mockery: ^1.4.4
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5.8
This package is auto-updated.
Last update: 2024-09-14 12:17:31 UTC
README
一个轻量级中间件,使API路由能够支持会话。
安装
$ composer require overtrue/laravel-stateless-session -vvv
用法
将中间件(\Overtrue\LaravelStatelessSession\Http\Middleware\SetSessionFromHeaders
)添加到API路由组。
protected $middlewareGroups = [ //... 'api' => [ \Overtrue\LaravelStatelessSession\Http\Middleware\SetSessionFromHeaders::class, \Illuminate\Session\Middleware\StartSession::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ];
响应头
此中间件会将会话ID设置为响应头中的名为'x-session',如果您想更新头名称,可以在config/session.php
中添加header
。
config/session.php
'header' => 'x-session',
请求头
API请求必须在头中设置最后的会话ID。以axios为例,我们需要监听API响应,从响应头中检索会话ID并将其存储在本地存储中,然后检索它并将其添加到请求头中。
axios.interceptors.request.use(function (config) { config.headers['x-session'] = 'session id from your localstorage'; return config; }, function (error) { return Promise.reject(error); }); // Store the response session id axios.interceptors.response.use(function (response) { if (response.headers['x-session']) { // store session id to localstorage } return response; }, function (error) { return Promise.reject(error); });
贡献
您可以通过以下三种方式之一进行贡献
代码贡献流程并不非常正式。您只需确保遵循PSR-0、PSR-1和PSR-2编码指南。任何新的代码贡献都必须附有相应的单元测试(如有适用)。
由JetBrains支持的项目
非常感谢JetBrains慷慨提供许可证,使我能够致力于这个和其他开源项目。
PHP 扩展包开发
想知道如何从零开始构建PHP扩展包吗?
请关注我的实战课程,我将在该课程中分享一些扩展开发经验 —— 《PHP 扩展包实战教程 - 从入门到发布》
许可
MIT