Voici mon approche de 2 cents du problème auquel je faisais face. pourrait aider quelqu'un dans le futur. Après un peu de recherche et de compréhension sur le fonctionnement de JWT, je dois encore un peu plus de recherches pour bien le comprendre. Cependant, pour avoir une vue d'ensemble, je ne peux pas trouver un meilleur article à expliquer avec des mots simples autres que https://scotch.io/tutorials/the-anatomy-of-a-json-web-token.
Maintenant, une fois que j'ai compris le fonctionnement de JWT, il m'a été facile d'en comprendre le déroulement. Alors voici comment je l'ai abordé. Comme je travaille sur une API interne pour mon entreprise, j'ai créé un middleware pour vérifier si une requête à certains points de terminaison provient d'une API en liste blanche que vous pouvez facilement obtenir à partir de $ request-> api().
Puis j'ai installé l'excellent paquet par tymondesigns au https://github.com/tymondesigns/jwt-auth. J'ai suivi l'installation et généré la clé secrète. Maintenant, voici la partie amusante. Je voulais que les points de terminaison soient sécurisés sans que je doive être connecté, d'où j'ai créé mon propre middleware où j'ai attrapé certains utilisateurs de ma table d'utilisateurs et créé un jeton JWT à partir de cet objet utilisateur.
$ utilisateur = App \ Utilisateur :: whereEmail ('email') -> first() $ token = JWTAuth :: fromUser ($ user); Une fois que j'ai eu le jeton, tout ce que je devais faire était d'appeler mon point de terminaison, c'est-à-dire/api/v1/users? Token = {generatedToken} et le tour est joué !!! tout bon à faire. Cependant, nous avons aussi besoin de rafraîchir le jeton après un certain temps, ce qui encore une fois le package fourni heureusement deux intergiciels
jwt.auth et jwt.refresh
jwt.auth tente de créer middleware jeton en utilisant la méthode authentifie par des informations d'identification, donc je l'ai échangé pour mon middleware où j'authentifie l'utilisateur comme ci-dessus et jwt.refreshes le jeton. Si vous lisez l'article que j'ai mentionné et que vous lisez le wiki du paquet, tout aura un sens. Cheerio !!
Si vous ne souhaitez pas vous connecter à l'application pour obtenir l'accès, rendez vos terminaux publics. Sinon, vous devrez en quelque sorte obtenir des jetons d'accès si vos routes sont protégées – EddyTheDove
@EddyTheDove, c'est ce que j'essaie de comprendre. Je veux que les points d'extrémité soient protégés. Cependant, en même temps, je devrais pouvoir l'appeler. Juste essayer de comprendre ce qui serait la bonne façon de faire à ce sujet – alithedeveloper