2017-03-22 3 views
1

Ich hatte eine frische Lumen 5.4 Installation und folgte dieser tutorial. Login und andere funktionieren gut, aber die Abmeldung scheint nicht richtig zu funktionieren. Was ich meine ist, wenn ich versuche, ein Token ablaufen zu lassen, gibt es mir keinen Fehler, aber wenn das gleiche Token (das gerade abgelaufen ist) wieder verwendet wird, sollte es abgelaufen sein, aber geht immer noch durch und holt mir das Daten. In einfachen Worten, ich glaube, dass das Token überhaupt nicht abläuft. Unten ist mein Code:JWT Auth Token nicht ungültig nach dem Abmelden in Lumen 5.4

UserController Code:

class UserController extends Controller 
{ 
    protected $jwt; 
    public function __construct(JWTAuth $jwt) 
    { 
      $this->jwt = $jwt; 
    } 

    public function Signin(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required|email|max:100', 
      'password' => 'required|min:6', 
     ]); 

     if (!$token = $this->jwt->attempt($request->only('email', 'password'))) { 
      return response()->json(['The credentials provided are invalid.'], 500); 
     } 

     return response()->json(compact('token')); 
    } 

    public function LogoutUser(Request $request){ 
     $this->jwt->invalidate($this->jwt->getToken()); 

     return response()->json([ 
      'message' => 'User logged off successfully!' 
     ], 200); 
    } 
} 

routes:

$app->group(['prefix' => 'api'], function($app){ 
    $app->post('/signup', [ 
     'uses' => '[email protected]' 
    ]); 

    $app->group(['middleware' => 'auth:api'], function($app){ 
     $app->post('/logout',[ 
      'uses' => '[email protected]' 
    ]); 
    }); 
}); 

config/auth.php:

'defaults' => [ 
    'guard' => env('AUTH_GUARD', 'api'), 
], 
'guards' => [ 
    'api' => [ 
     'driver' => 'jwt', 
     'provider' => 'users' 
    ], 
], 
'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => \App\User::class, 
    ], 
], 
'passwords' => [ 
    // 
], 

Jede Hilfe wird sehr geschätzt.

Antwort

1

Ich habe es jetzt funktioniert und hinterlasse die Schritte, wenn jemand anderes das gleiche Problem auftritt. Die Lösung bestand darin, CACHE_DRIVER=file in der Datei .env zu verwenden. Ich bin mir nicht ganz sicher, warum oder wie dies das Problem behebt, aber einige Untersuchungen haben mich dazu geführt und waren ein Ergebnis von Versuchen und Irrtümern.

Verwandte Themen