JWTGenerateCommand :: handle()不存在

时间:2017-09-08 20:02:50

标签: laravel-5 jwt

我正在使用Laravel 5.4和JWT Auth库进行API开发中的用户身份验证。在我正在运行php artisan jwt:generate时安装后,它会抛出错误

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

知道我错过了什么吗?

8 个答案:

答案 0 :(得分:23)

在laravel 5.5版本中安装jwt软件包时,通常会显示此错误。然后在设置服务提供程序并运行以下命令之后。

php artisan jwt:generate

然后您在终端中看到此错误消息。

如何解决?简单地按照这一步

步骤 - 1重新安装软件包

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

在这个开发版本中,这个错误得到了解决。

步骤 - 2设置服务提供商

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

步骤 - 3生成密钥

php artisan jwt:secret

我从这里找到了这个解决方案http://laravelcode.com/post/method-tymonjwtauthcommandsjwtgeneratecommandhandle-does-not-exist

答案 1 :(得分:3)

改变供应商文件夹中的任何内容绝不是一个好主意,但有两种方法可以解决这个问题...

  1. 自己生成一个随机字符串,只需更改JWT配置文件中的值。

  2. 转到Tymon \ JWTAuth \ Commands \ JWTGenerateCommand并更改要处理的fire方法。

答案 2 :(得分:3)

转到vendor / tymon / src / Commands中的JWTGenerateCommand.php文件并粘贴此方法

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

答案 3 :(得分:2)

转到给定的文件路径

<强>供应商/ tymon / JWT-AUTH / SRC /命令/ JWTGenerateCommand.php

更改功能名称

公共功能fire()到 公共功能句柄()

运行命令:

php artisan jwt:generate

答案 4 :(得分:1)

我发布这个答案是因为我在这个错误中崩溃了不止一次。

我发现它与Laravel 5.6一起使用的唯一解决方案如下:

  • 将“tymon / jwt-auth”:“1.0.0-rc.1”添加到composer.json和run composer update
  • 打开config/app.php并添加以下内容:

<强>配置/ app.php

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

    php artisan vendor:publish --provider =“Tymon \ JWTAuth \ Providers \ LaravelServiceProvider”

  • 最后,执行:php artisan jwt:secret

毕竟,当我点击我的端点登录时,我得到以下异常:

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

这是通过以下方式解决的:

  • 打开config/jwt.php并更改以下内容:

<强>配置/ jwt.php

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

最后,请注意,为了工作,您的用户模型应定义如下:

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

答案 5 :(得分:0)

我可以建议一个解决方案。转到vendor / tymon / src / Commands中的JWTGenerateCommand.php文件并粘贴这部分代码public function handle(){$ this-&gt; fire(); }

我知道这不是一个优雅的解决方案,但它确实有效。我希望这可能会有所帮助,直到官方解决方案到来。

see here for more info

答案 6 :(得分:0)

将fire()函数更改为此路径中的handle() 供应商/ tymon / JWT-AUTH / SRC /命令/ JWTGenerateCommand.php

答案 7 :(得分:-2)

在文件路径中:/vendor/tymon/jwt-auth/src/Commands/JWTGenerateCommand.php

添加公共功能

[(ngModel)]="frm[c.condition]"