web-dev-qa-db-fra.com

JWTGenerateCommand :: handle () n'existe pas

J'utilise Laravel 5.4 et JWT Auth Library pour l'authentification de l'utilisateur dans le développement de l'API. Après l’installation pendant que j’exécute php artisan jwt:generate, il me renvoie une erreur de

Method Tymon\JWTAuth\Commands\JWTGenerateCommand::handle() does not exist 

Une idée de ce qui me manque?

5
Chintan7027

Cette erreur s’affiche généralement lorsque vous installez le package jwt dans la version de laravel 5.5. puis après avoir défini les fournisseurs de services et exécuté la commande suivante.

php artisan jwt:generate

alors vous avez vu ce message d'erreur dans le terminal.

comment le résoudre? simple suivez cette étape

Etape - 1 Réinstallez le package

composer require tymon/jwt-auth:dev-develop --prefer-source

dans cette version de développement, cette erreur a été corrigée.

Étape - 2 Définir le fournisseur de service

'providers' => [
    ....
    Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class to 
    Tymon\JWTAuth\Providers\LaravelServiceProvider::class
],

Etape - 3 Générer la clé

php artisan jwt:secret

j'ai trouvé cette solution à partir d'ici http://laravelcode.com/post/method-tymonjwtauthcommandsjwtgeneratecommandhandle-does-not-exist

19
Harsukh Makwana

Ce n'est jamais une bonne idée de changer quoi que ce soit dans le dossier du fournisseur, mais il y a deux façons de gérer cela ...

  1. Générez vous-même une chaîne aléatoire et modifiez simplement la valeur dans le fichier de configuration JWT.

  2. Accédez à Tymon\JWTAuth\Commands\JWTGenerateCommand et modifiez la méthode de tir à gérer.

3
user8584851

Accédez au fichier JWTGenerateCommand.php situé dans vendor/tymon/src/Commands et collez cette méthode.

public function handle() { $this->fire(); }
3
Toni

aller au chemin du fichier donné

vendor/tymon/jwt-auth/src/Commandes/JWTGenerateCommand.php

changer le nom de la fonction

fonction publique incendie () à descripteur de fonction publique ()

commande d'exécution:

php artisan jwt: générer

1
abhishek kumar

Je publie cette réponse parce que je me suis planté plusieurs fois dans cette erreur.

La seule solution que j'ai trouvée qui fonctionne avec Laravel 5.6 est la suivante:

  • Ajoutez "tymon/jwt-auth": "1.0.0-rc.1" à composer.json et run composer update
  • Ouvrez config/app.php et ajoutez ce qui suit:

config/app.php :

 'providers' => [
   /*
   * JWT Service Provider...
   */
   Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
 ],
 'aliases' => [
   'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,
   'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class,
 ],
  • Exécuter:

    artisan vendeur php: publish --provider = "Tymon\JWTAuth\Providers\LaravelServiceProvider"

  • Enfin, exécutez: php artisan jwt:secret

Après tout cela, lorsque j'ai atteint mon ordinateur d'extrémité pour la connexion, j'ai obtenu l'exception suivante:

Class Tymon\JWTAuth\Providers\JWT\NamshiAdapter does not exist

Ceci a été corrigé par:

  • Ouvrez config/jwt.php et modifiez les éléments suivants:

config/jwt.php :

'jwt' => Tymon\JWTAuth\Providers\JWT\Namshi::class,
'auth' => Tymon\JWTAuth\Providers\Auth\Illuminate::class,
'storage' => Tymon\JWTAuth\Providers\Storage\Illuminate::class,

Enfin, notez que pour fonctionner, votre modèle d’utilisateur doit être défini comme suit:

class User extends Authenticatable implements JWTSubject
{
     ...
     public function getJWTIdentifier()
    {
        return $this->getKey();
    }
    public function getJWTCustomClaims()
    {
        return [];
    }
    ...
}
1

Changez la fonction fire () en handle () dans ce chemin Vendeur/tymon/jwt-auth/src/Commandes/JWTGenerateCommand.php

0
zia

Je peux conseiller une solution. Accédez au fichier JWTGenerateCommand.php situé dans vendor/tymon/src/Commands et collez cette partie du code avec public function handle () {$ this-> fire (); }

Je sais que ce n'est pas une solution élégante, mais cela fonctionne. J'espère que cela pourra aider jusqu'à ce que le correctif officiel arrive.

voir ici pour plus d'informations

0
Irony Stack