2017-05-07 3 views
2

Ich habe JWT zu meiner Laravel-Anwendung mit der Erklärung auf dem offiziellen Repository jwt-auth installation wiki hinzugefügt. Die Installation war erfolgreich (dh nachdem ein Composer-Update ausgeführt wurde). Zu diesem Zeitpunkt musste ich jwt zum Array services and aliases hinzufügen und den publish-Befehl ausführen, um die Konfigurationsdatei zu veröffentlichen. JWT-Konfigurationsdatei nicht nach der Installation veröffentlicht

Mit

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider" 

Der obigen Befehl wird ausgeführt und zeigt Publishing complete Dies ist jedoch nicht das erwartete Verhalten wir erwarten, dass es den Namen der Konfigurationsdatei zeigen jwt.php erzeugt. Das ist nicht Fall und wie erwartet den nächsten Befehl

läuft
php artisan jwt:generate 

kehrt und Fehler

[Symfony\Component\Console\Exception\CommandNotFoundException] 
    There are no commands defined in the "jwt" namespace. 

Und ich denke, das liegt daran, dass die jwt.php Config-Datei nicht vorhanden ist, was mache ich hier fehlt? Danke im Voraus.

Antwort

1

Ich poste diese Antwort Tage nachdem ich das Problem gelöst habe, da keine Antworten kommen. Nach einigen Nachforschungen fand ich, dass der Hauptgrund, warum eine Config-Datei trotz korrekter Installation nicht veröffentlicht wird, die Verwirrung in config:cache ist, wenn neue Konfigurationen hinzugefügt werden. Jedoch löste ich das Problem, indem ich

php artisan config:clear 

dann laufen lass den publish Befehl wieder und boom !! es funktionierte. Diese Methode funktioniert nicht nur für JWT, sondern auch für andere Konfigurationen, die nicht veröffentlicht werden, aber es ist gut zu wissen, dass das Problem auch durch andere Dinge verursacht werden kann.

+0

Das hat nicht löse das Problem leider für mich. – geoidesic

+0

@geoidesic können Sie mehr Details darüber geben, wie sich Ihr eigenes Verhalten verhalten hat? Dies könnte uns helfen, eine Lösung zu finden. –

+0

@ F.E Noel Nfebe - Ich denke in meinem Fall ist es, weil JWT nicht in composer.json enthalten war. Ich konnte JWT jedoch wegen Abhängigkeitshölle nicht installieren. – geoidesic

0

Ich hatte das gleiche Problem. Die folgenden für mich gearbeitet:

php Handwerkers config: klar

php Handwerker Anbieters: veröffentlichen --provider = "Tymon \ JWTAuth \ Providers \ JWTAuthServiceProvider :: class"

php Handwerkers config: Cache

php Handwerker Verkäufer: veröffentlichen

0

die Tymon/jwt-auth-Paket in Laravel installieren zu können, sollte man die folgenden Schritte durchführen:

Composer.json erfordern sollte wie folgt sein:

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

dann in config/den in dem Provider-Array folgende app.php setzen:

Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class 

Dann in der Aliase Array in der config/App.php fügen Sie den folgenden

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

Geben Sie dann den folgenden Befehl ein:

php artisan vendor:publish 

Hinweis: Verschiedene Tutorial wird vorschlagen, dass Sie die folgende PHP-Handwerker-Anbieter: veröffentlichen --provider = "Tymon \ JWTAuthProviders \ JWTAuthServiceProvider" aber vor dem versuchen, dass sie den obigen Befehl dh ohne --provider und es wird

geben sie dann arbeiten:

php artisan jwt:generate 

Nach diesem Schritt können Sie die generierten Schlüssel in app überprüfen/config/jwt.php wie unten erwähnt:

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

Jetzt sind gut zu dir gehen ...

0

Für Lumen 5.5 *

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

Add Schlag Code in app/Anbieter/AppServiceProvider.php Registermethode:

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