2017-05-07 16 views
2

我使用官方存儲庫jwt-auth installation wiki上的解釋向我的Laravel應用程序添加了jwt。安裝成功(即在運行作曲家更新後)。在那個階段,我將剩餘的jwt添加到services和aliases數組中,並運行publish命令來發布配置文件。安裝後未發佈Jwt配置文件

使用

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配置文件不存在,我缺少什麼嗎?提前致謝。

回答

1

我發佈這個答案天后,我解決了問題,因爲沒有答案即將上演。 經過一番研究,我發現儘管安裝正確,配置文件可能無法發佈的主要原因是由於添加新配置時config:cache中的混淆。但是我通過運行

php artisan config:clear 

然後運行命令發佈一次景氣解決了這個問題!有效。此方法不僅適用於JWT,而且適用於其他未能發佈的配置,但應該注意,該問題也可能由其他方面引起。

+0

這並沒有不幸的是我解決了這個問題。 – geoidesic

+0

@geoidesic你能給出更多關於你自己的行爲方式的細節嗎?這可能會幫助我們找到解決方案。 –

+0

@ F.E Noel Nfebe--我認爲這是因爲JWT沒有包含在composer.json中。但是由於依賴地獄,我無法安裝JWT。 – geoidesic

0

我有同樣的問題。以下爲我工作:

PHP工匠配置:明確

PHP工匠供應商:發佈--provider = 「Tymon \ JWTAuth \供應商\ JWTAuthServiceProvider ::類」

PHP工匠配置:緩存

PHP人員廠商:發佈

0

要安裝在laravel的tymon/JWT-AUTH包,一個應遵循下列步驟:

Composer.json要求應該是這樣的:

"require": { 
     "php": ">=5.5.9", 
     "laravel/framework": "5.1.*", 
     "tymon/jwt-auth": "0.5.*" 
    }, 

然後,在配置/ app.php把提供商陣列中的以下內容:

Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class 
在config /應用程序中的別名陣列中

然後。PHP添加以下

'JWTAuth' => Tymon\JWTAuthFacades\JWTAuth::class, 
'JWTFactory' => Tymon\JWTAuthFacades\JWTFactory::class 

然後鍵入以下命令:

php artisan vendor:publish 

注:各種教程會提示你下面的PHP工匠供應商:發佈--provider = 「Tymon \ JWTAuthProviders \ JWTAuthServiceProvider」,但befor試圖上面的命令即不--provider,也將努力

然後鍵入:

php artisan jwt:generate 

這個步驟後,你可以驗證應用程序生成的密鑰/配置/ jwt.php以下提到:

'secret' => env('JWT_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'), 

現在你是好去...

0

對於流明5.5 *

$ composer require tymon/jwt-auth:"^1.0.0" 

添加打擊代碼到應用程序/供應商/ AppServiceProvider.php註冊方法:

$this->app->register(\Tymon\JWTAuth\Providers\LumenServiceProvider::class);