4
votes

Laravel sanctum non authentifié

J'utilise Laravel sanctum dans mon projet avec angular comme frontend. Être non authentifié à partir de la deuxième demande d'API. S'il vous plaît laissez-moi savoir où je vais mal

Frontend-> 127.0.0.1:4200

Backend-> localhost: 8888

.env config

SESSION_DOMAIN = hôte local SANCTUM_STATEFUL_DOMAINS = 127.0.0.1

Ajout du middleware auth: sanctum au groupe routes dans api.php

Réf: https://prnt.sc/rm9ejy


0 commentaires

5 Réponses :


2
votes

D'après la capture d'écran que vous avez partagée, je vois que votre domaine est localhost et non 127.0.01, faites simplement:

SANCTUM_STATEFUL_DOMAINS=localhost


0 commentaires

2
votes

Pour toute personne utilisant Laravel Homestead, utilisez votre domaine actuel.

SANCTUM_STATEFUL_DOMAINS=homestead.test


1 commentaires

Cela a fonctionné pour moi lors de l'utilisation d'un domaine factice "app.test" sous le fichier /etc/hosts mon ordinateur



0
votes

Quelle version utilisez vous? Depuis la version V2.4.0, vous devez spécifier le port:

SANCTUM_STATEFUL_DOMAINS=localhost:4200

Consultez ce numéro pour plus d'informations.


0 commentaires

1
votes

Pour toute personne ayant l'erreur de non-authentification, veuillez vous assurer de suivre ces étapes.

  • Envoyez une demande de publication à / sanctum / csrf-cookie
  • Envoyez une demande de publication à la route Web / connexion pour vous authentifier

Après cette étape, vous serez authentifié avec succès par le middleware auth: sanctum dans la route API.

Autres choses à savoir:

  1. Assurez-vous que votre SESSION_DOMAIN est défini sur localhost
  2. SANCTUM_STATEFUL_DOMAIN est défini sur votre sous-domaine / SPA avec le port, par exemple localhost: 8000

Pour la question d'origine, veuillez vous assurer de conserver le même domaine. Je veux dire, utilisez localhost pour les deux. Et définissez SANCTUM_STATEFUL_DOMAIN = localhost: 4200

Édité

Définissez également SESSION_DRIVER


0 commentaires

0
votes

Deux jours de douleur et de désespoir pour arriver à cette conclusion: le jeton porteur n'était pas attaché à la demande, et cela à cause de ma configuration .htaccess.

Si, comme moi, vous ne parvenez pas à vous authentifier via un jeton API, essayez d'ajouter cette ligne sur votre fichier .htaccess dans le répertoire public de votre projet Laravel:

RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Juste après la directive RewriteEngine On .

CRÉDITS: Laravel ne détecte pas le jeton d'authentification envoyé dans l'en-tête et le package JWT


0 commentaires