Après la configuration du passeport, j'ai configuré et créé un contrôleur pour gérer Register-Login- et - l'accès à une ressource pour une demande de publication externe générale. Je n'ai pas besoin d'un client spécifique. Mais lorsque j'essaye de créer un jeton dans l'inscription ou dans la connexion:
$tokenObj=$user->createToken('APPLICATION')->accessToken;
L'erreur est:
RuntimeException: client d'accès personnel introuvable. Veuillez en créer un. dans le fichier C: \ xampp7.1 \ htdocs \ passport \ vendor \ laravel \ passeport \ src \ ClientRepository.php à la ligne 94 Trace de la pile: 1. RuntimeException -> () C: \ xampp7.1 \ htdocs \ passeport \ vendor \ laravel \ passeport \ src \ ClientRepository.php: 94 2. Laravel \ Passport \ ClientRepository-> personalAccessClient () C: \ xampp7.1 \ htdocs \ passeport \ vendor \ laravel \ passeport \ src \ PersonalAccessTokenFactory.php: 71
Comment puis-je le résoudre?
6 Réponses :
Vous devez d'abord créer des clients d'accès. Il est documenté ici . Un client d'accès n'est pas le même qu'un jeton d'utilisateur, vous pouvez avoir un client d'accès et de nombreux utilisateurs avec des mots de passe et des jetons différents.
pour moi, il a résolu en courant
php artisan passport:install
car cela s'est produit après l'actualisation de ma base de données.
Existe-t-il un moyen d'exécuter cette commande automatiquement après l'actualisation de la base de données?
En plus du commentaire de namelivia. Comme le dit Laravel doc:
Avant que votre application puisse émettre des jetons d'accès personnels, vous devez créer un client d'accès personnel. Vous pouvez le faire en utilisant la commande passeport: client avec l'option --personal. Si vous avez déjà exécuté la commande passeport: install, vous n'avez pas besoin d'exécuter cette commande:
php artisan passport:install
Mais si vous n'avez pas exécuté la commande:
php artisan passport:client --personal
Vous devez d'abord l'exécuter.
Après avoir exécuté la commande
What should we name the personal access client? [Artisan Personal Access Client]:
et vous donner cette invite
php artisan passport:client --personal
ne vous inquiétez pas, tapez simplement un nom et appuyez sur la touche Entrée.
Exécutez simplement cette commande
php artisan passport:install --force
J'ai eu la même erreur encore et encore mais je ne savais pas comment la reproduire, mais j'ai compris pourquoi. lorsque vous exécutez php artisan passport:install
, il stocke les deux ID clients dans la base de données après la commande migrate , mais si vous migrez à nouveau, il est évident que vous perdrez ces deux ID précédents, c'est pourquoi cette erreur a été affichée après l'exécution la commande d'installation.