2017-03-22 57 views
1

我有一个新的流明5.4安装,并遵循此tutorial。登录和其他工作正常,但注销似乎不能正常工作。我的意思是,如果我尝试过期令牌,它不会给我一个错误,但如果相同的令牌(刚过期的令牌)被重新使用,它应该说已过期,但仍然会经过并使我数据。简而言之,我相信它并没有过期令牌。下面是我的代码:JWT认证令牌在流明注销后不会失效5.4

UserController代码:

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' => [ 
    // 
], 

任何帮助将不胜感激。

回答

1

我现在已经得到它的工作,并留下的步骤,如果任何人面临同样的问题。修复方法是在.env文件中使用CACHE_DRIVER=file。我不完全确定为什么或如何修复它,但一些研究让我知道这一点,并且是反复试验的结果。