我使用官方存储库jwt-auth installation wiki上的解释将jwt添加到我的Laravel应用程序中。安装成功(即运行作曲家更新后)。在那个阶段,我只是将jwt添加到服务和别名数组并运行publish命令来发布配置文件。
运用
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
上面的命令运行并显示Publishing complete
然而,这不是我期望它显示生成的配置文件jwt.php的名称的预期行为。这不是情况,正如预期的那样运行下一个命令
php artisan jwt:generate
返回和错误
[Symfony\Component\Console\Exception\CommandNotFoundException]
There are no commands defined in the "jwt" namespace.
我猜这是因为没有jwt.php配置文件,我在这里缺少什么?提前致谢。
我有同样的问题。以下对我有用:
php artisan config:clear
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class"
php artisan config:cache
php artisan vendor:publish
我在解决问题后几天发布这个答案,因为没有答案。经过一些研究后我发现,尽管安装正确,配置文件可能无法发布的主要原因是由于config:cache
在添加新配置时出现混淆。但是我通过运行解决了这个问题
php artisan config:clear
然后再次运行发布命令并繁荣!!有效。此方法不仅适用于JWT,也适用于其他未能发布的配置,但值得注意的是,问题也可能由其他内容引起。
要在laravel中安装tymon/jwt-auth
软件包,应遵循以下步骤:
Composer.json require应该是这样的:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"tymon/jwt-auth": "0.5.*"
},
然后在config / app.php中将以下内容放在providers数组中:
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class
然后在config / app.php的别名数组中添加以下内容
'JWTAuth' => Tymon\JWTAuthFacades\JWTAuth::class,
'JWTFactory' => Tymon\JWTAuthFacades\JWTFactory::class
然后键入以下命令:
php artisan vendor:publish
注意:各种教程建议您执行以下操作:
php artisan vendor:publish --provider="Tymon\JWTAuthProviders\JWTAuthServiceProvider"
但是,在此之前,请尝试上面的命令而不使用--provider,它会起作用。
然后输入:
php artisan jwt:generate
完成此步骤后,您可以在app/config/jwt.php
中验证生成的密钥,如下所述:
'secret' => env('JWT_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
现在,你很高兴...
对于流明5.5。*
$ composer require tymon/jwt-auth:"^1.0.0"
将打击代码添加到app / Providers / AppServiceProvider.php注册方法中:
$this->app->register(\Tymon\JWTAuth\Providers\LumenServiceProvider::class);
对于laravel 5.5及更高版本安装jwt版本1.0.0-rc.1运行良好,你不需要在服务提供商中注册jwt类只需要它与composer:
composer require tymon/jwt-auth:1.0.0-rc.1
之后你可以发布。