官方介绍
Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。
也就是说Lumen内核已经剥离了Cookie、Session,如果需要使用到,需要增加安装,经过一阵折腾,终于整好了,顺便记录下来。
安装Cookie服务提供者
1
| composer require illuminate/cookie
|
增加session配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| return [ 'driver' => 'file', 'lifetime' => 120, 'expire_on_close' => false, 'encrypt' => false, 'files' => storage_path('framework/sessions'), 'connection' => 'session', 'table' => 'sessions_laravel', 'store' => null, 'lottery' => [2, 100], 'cookie' => 'PHPSESSID', 'path' => '/', 'domain' => env('SESSION_DOMAIN', null), 'secure' => false, 'http_only' => true, ];
|
注册Cookie服务提供者
修改bootstrap/app.php,增加以下内容
1 2 3 4
| $app->register(Illuminate\Cookie\CookieServiceProvider::class);
$app->configure('session');
|
测试
编辑routes/web.php
1 2 3 4 5 6
| use Illuminate\Support\Facades\Cookie;
$router->get('/', function () use ($router) { return response($router->app->version()) ->withCookie(Cookie::make('cookie_key', 'cookie_value')); });
|
生命的意义在于折腾!