var Phenix = function () {
Troll du Web depuis 1996

Utiliser la session Laravel avec les route/api

Je cherchais une solution pour utiliser les routes « api » de Laravel avec la session « web » classique.
Installer Passport est complexe et souvent inutile pour pas mal de projet. Il existe la solution de passer par un champ api_token dans la base de donnée, mais niveau sécurité, je trouve cela moyen.

Cependant, il est possible d’utiliser le driver de session classique :

Dans config/auth.php, il faut modifier les guards pour replacer token par session en dessous d’API :

  1.     'guards' => [
  2.         'web' => [
  3.             'driver' => 'session',
  4.             'provider' => 'users',
  5.         ],
  6.  
  7.         'api' => [
  8.             'driver' => 'session',
  9.             'provider' => 'users',
  10.             'hash' => false,
  11.         ],
  12.     ],

Ensuite dans app/Http/Kernel.php, il faut modifier le middlewareGroups « api » :

  1.         'api' => [
  2.             'throttle:60,1',
  3.             \App\Http\Middleware\EncryptCookies::class,
  4.             \Illuminate\Session\Middleware\StartSession::class,
  5.             'bindings',
  6.         ],

Tester avec un projet Laravel 6 sans soucis !

Un message, un commentaire ?
modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message
  • Pour créer des paragraphes, laissez simplement des lignes vides.