Laravel中Api路由组使用session解决办法 首先, 不建议在laravel的api路由组中使用session维持会话,这不是一个好的做法 。不过我们可能在某些客观条件下,需要使用,今天记录下自己遇到的坑。
中间件 api路由组需要同时添加两个中间件,缺一不可
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class,
将上面两行加入到app/Http/Middware/kernel.php中的api 属性中
StartSession中间件中主要是设置session文件内容、设置响应头中的set-cookie字段,且框架对cookie内容进行了加密,所以如果不添加EncryptCookies中间件的话,会被匹配不到实际的session id,成为无效的会话。
我发现将EncryptCookies、StartSession两个中间件放到api数组末尾,会不生效