2016-11-20 4 views
1

Ich bin ziemlich müde von diesem Fehler .. Stuck für 2 Tage jetzt.Laravel JWT Auth Token ungültig/Unterschrift konnte nicht verifiziert werden

Ich erhalte ein Token für gültige Anmeldeinformationen, aber mein Token bleibt ungültig, egal ob ich es über den URL-Parameter (? Token = [Token]) oder als Auth-Header (Bearer: [Token]) übergebe. Wer erlebt das noch? Ich habe alles im Tutorial verfolgt. Auch konfiguriert .htaccess in meinem öffentlichen Ordner und in meiner Apache-Konfiguration.

Route::get('/test', function() { 
    return JWTAuth::parseToken()->authenticate(); 
}); 

auf diesen Weg gehen zurück

TokenInvalidException in NamshiAdapter.php Linie 71: Token Signatur nicht verifiziert werden konnte. Für Referenzen, hier ist meine Authentifizierungsmethode von meinem AuthController.php

public function authenticate(Request $request) { 
    $credentials = $request->only('email', 'password'); 

    $user = User::where('email', Input::get('email'))->first(); 

    try { 
     if (!$token = JWTAuth::attempt($credentials)) { 
      return $this->respondUnauthorized(); 
     } 
    } catch (JWTException $e) { 
      return $this->respondInternalError('Could not create token!'); 
    } 
    // dd() 
    return $this->respond([ 
     'token' => compact('token'), 
     'user' => $user]); 
} 

Gruppe Meine Routen Middleware:

Route::group(['middleware' => ['jwt.auth', 'jwt.refresh']], function() { 

Wenn ich Linie überprüfen 71 in meinem NamshiAdapter und ich dd() mein Token es sagt Mein Geheimnis ist leer ...

Es muss etwas falsch sein? Ist das nur ein kleiner Fehler oder fehlt mir etwas?

+0

müssen Sie die api Geheimnis in jwt einzustellen. php im Konfigurationsordner ... laravel erzeugt das Token, aber da der Schlüssel nicht existiert, kann er nicht verifiziert werden und daher weiß die App nicht, ob es ein legales Token ist – jycr753

+2

hast du 'php artisan jwt: secret' ausgeführt ? – jycr753

+0

Haben beide, auch versucht, einen Schlüssel für jwt zu erzeugen, stellt es nicht automatisch ein (der ein anderer Programmfehler ist), es manuell einstellend löst kein Problem. @ G3ek1337 –

Antwort

1

hatte ich das gleiche Problem

die Lösung, was ... jycr753 gesagt hat, ist

in der Tat auf config/jwt.php "das api Geheimnis in jwt.php Einstellung", gibt die Leitung 'secret' => env('JWT_SECRET'),,

  • generieren sie den Schlüssel mit diesem Helfer php artisan jwt:generate (aus irgendeinem Grund, den ich weiß nicht, warum es in der .env Datei selbst wie php artisan key:generate gesetzt doesnt).

  • Kopieren Sie die Taste (jwt-auth secret [DSvO98YtJ0204mBu9zqWN9QOMX7Tmvr9] set successfully.) ohne die Konsole und fügen Sie ihn in .env Datei wie JWT_SECRET=DSvO98YtJ0204mBu9zqWN9QOMX7Tmvr9 oder Sie können es straigth in jwt.php ändern secret' => env('DSvO98YtJ0204mBu9zqWN9QOMX7Tmvr9')

+0

Die letzte Zeile sollte env sein ('JWT_SECRET', 'DSvO98YtJ0204mBu9zqWN9QOMX7Tmvr9') –

+0

In der Datei config/jwt.php in der Zeile, in der Sie ''secret' => env ('JWT_SECRET')' haben, nach dem Erzeugen des Schlüssels mit der Befehl 'php artisan jwt: generate' kopiere diesen Schlüssel, der von meinem abweichen könnte, und ersetze den JWT_SECRET in der jwt.php Datei –

+0

Ich weiß, wie das funktioniert Ich werde deinen ursprünglichen Beitrag bearbeiten –

Verwandte Themen