0

I am trying to get working Lumen session but only for a specific route, since on other I don't need it.

All I find is to enable middlewhere like

$app->middleware([
    'Illuminate\Cookie\Middleware\EncryptCookies',
    'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
    'Illuminate\Session\Middleware\StartSession',
    'Illuminate\View\Middleware\ShareErrorsFromSession',
]);

(source https://stackoverflow.com/a/32635502/1861519)

But this will do a global session setting. But I needed it only as sad on specific route.

Danijel
  • 817
  • 1
  • 17
  • 31
  • You can specify middleware directly on the route like: $app->get('/', ['middleware' => 'yourMiddleware', 'uses' => 'Your/Controller@method']) – GnarfDwarf Jun 13 '18 at 08:47

2 Answers2

0

All app level middleware goes here

  $app->middleware([
     \Illuminate\Cookie\Middleware\EncryptCookies,
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse ]);

Custom middleware that need session

$app->routeMiddleware([ 'session' => \Illuminate\Session\Middleware\StartSession]);

Now add it in route

$app->get('/protected', ['middleware' => 'session', 'uses' => 'ProtectedController@index'])
rkj
  • 8,067
  • 2
  • 27
  • 33
0

You can try this when use session on specific routes:

$session = $request->session();
$session->put('foo', 'bar');
echo $session->get('foo');
$session->save();

save() will persist the session file for you.

Stephen Rauch
  • 47,830
  • 31
  • 106
  • 135
cjh
  • 1