JWT의 refresh_token

4242 단어 laravel 관련
참조 링크:https://github.com/tymondesigns/jwt-auth/issues/186 https://github.com/tymondesigns/jwt-auth/issues/11
JWT를 이용하여 기한을 넘기다: 1.일반 경로에서 요청할 때 token이 만료되면 클라이언트가 서버에 설정된refresh 경로로 요청을 다시 보냅니다. 2.이 경로에서 middleware = "jwt.refresh, 그리고 처리 함수에서:
$token = JWTAuth::getToken();
$newToken = JWTAuth::refresh($token);

시도를 거치면 상기 방법은 안 됩니다!!!middleware='jwt에서는 안 됩니다.refresh에서 요청한 새 토큰이 존재하지 않는다는 것을 먼저 알려주고 블랙리스트에 들어갔습니다.해결 방법은 직접 새로운 루트를 만들고 위의 코드를 컨트롤러 함수에 넣는 것이다.
이 덩어리는 이해하지 못했다.
// fired when the token could not be found in the request
Event::listen('tymon.jwt.absent');

// fired when the token has expired
Event::listen('tymon.jwt.expired');

// fired when the token is found to be invalid
Event::listen('tymon.jwt.invalid');

// fired if the user could not be found (shouldn't really happen)
Event::listen('tymon.jwt.user_not_found');

// fired when the token is valid (User is passed along with event)
Event::listen('tymon.jwt.valid');

https://github.com/tymondesigns/jwt-auth/issues/61여기에는 Add Event::listen('tymon.jwt.valid') hook in the boot function of the EventService Provider가 언급되어 있습니다.php, like this.
 public function boot(DispatcherContract  $events)
    {
        parent::boot($events);
        Event::listen('tymon.jwt.valid', function($event)
        {
            Auth::setUser($event);
        });
    }

그리고 이 부분의 전역 이상 처리도 잘 모르겠습니다: Add the following code to the render method within app/Exceptions/Handler.php
public function render($request, Exception $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());
    }
    return parent::render($request, $e);
}

사고를 기다리다

좋은 웹페이지 즐겨찾기