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
5 Réponses :
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
Pour toute personne utilisant Laravel Homestead, utilisez votre domaine actuel.
SANCTUM_STATEFUL_DOMAINS=homestead.test
Cela a fonctionné pour moi lors de l'utilisation d'un domaine factice "app.test" sous le fichier /etc/hosts
mon ordinateur
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.
Pour toute personne ayant l'erreur de non-authentification, veuillez vous assurer de suivre ces étapes.
Après cette étape, vous serez authentifié avec succès par le middleware auth: sanctum dans la route API.
Autres choses à savoir:
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
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