2 votes

Laravel : Comment vérifier l'authentification de l'utilisateur pour les routes API sans middleware('auth:api')

Comment puis-je vérifier si l'utilisateur actuel accédant à une méthode depuis un contrôleur est authentifié, la route API en question n'est protégée par aucun moyen d'authentification, parce que la route est accessible au public et aux utilisateurs invités, j'ai vérifié mes en-têtes de demande, le jeton Bearer est passé, j'utilise un routeur react pour mes routes. et le pilote api est passport

voie publique :

Route::get('product/list', 'ProductController@index')

ce qui a été essayé :

  1. Changement de l'AUTH Guard par défaut en api .

  2. J'ai essayé d'appeler explicitement le Auth()->guard('api')->check() dans la méthode du contrôleur.

    if (Auth()->guard('api')->check()) {
          return 'is_favourite';
    } else {
          return 'unauthenticated';
    }
  3. l'appelait aussi comme ça Auth()->check()

    if (Auth()->check()) {
          return 'is_favourite';
    } else {
          return 'unauthenticated';
    }

Résultat :

Toujours 'unauthenticated'

Résultats escomptés : résultat de is_favourite lorsqu'un jeton de porteur est transmis dans l'en-tête, et "non authentifié" si aucun jeton de porteur n'est fourni.

3voto

Joel Patrick Points 147

J'ai finalement réussi à le faire fonctionner, j'ai essayé avec ceci et ça a marché :

if (auth('api')->check()) {
      return 'is_favourite';
    } else {
      return 'unauthenticated';
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X