tymon / jwt-auth для маркера обновления laravel 5.4 - PullRequest
0 голосов
/ 10 мая 2018

Я недавно использовал laravel 5.4 и хочу использовать пакет tymon / jwt-auth для защиты своих API-интерфейсов путем отправки токена доступа, но мои проблемы возникли, когда токен истек, я не могу обновить его до истечения срока действия и ожидал, что токен будетобновляется автоматически


public function handle($request, Closure $next)
{
    try{
        $user = JWTAuth::parseToken()->authenticate();
    }catch (JWTException $e) {
        if($e instanceof \Tymon\JWTAuth\Exceptions\TokenExpiredException) {
            return response()->json(['token_expired'], $e->getStatusCode());
        }else if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenInvalidException) {

            return response()->json(['token_invalid'], $e->getStatusCode());
        }else{
            return response()->json(['error'=>'Token is required']);
        }
    }
   return $next($request);
}

1 Ответ

0 голосов
/ 20 августа 2018

Вам нужен только этот фрагмент для аутентификации:

$credentials = request(['email', 'password']);
if (!$token = JWTAuth::attempt($credentials)) {
    return response()->json(['error' => 'Unauthorized'], 401);
}

Убедитесь, что вы включили jwt.auth & jwt.refresh в промежуточное ПО на маршруте следующим образом:

Route::Group(['middleware' => [
    'jwt.auth',
    'jwt.refresh',
]], function() {
//list your route here
....
....
....

jwt.refresh обновляет ваш токен каждый раз, когда вы получаете доступ к маршруту. А также добавил это в свой .env

JWT_BLACKLIST_GRACE_PERIOD=60

Вы можете настроить число от 60 секунд до любых других значений. Этот параметр определяет, как долго токен будет действителен до повторного обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...