Laravel(Lumen)JWT-Auth 리 셋 token 문제 해결

Laravel(Lumen)에서 JWT-Auth 를 사용 하 는 데 문제 가 발생 했 습 니 다.즉,token 이 어떻게 새로 고침 하 는 지 입 니 다.
처음에는 작가 의 디자인 사상 을 잘 이해 하지 못 하고 많은 issue 를 본 후에 jwt-refresh 가 어떻게 사용 하 는 지 알 게 되 었 다.
'auth/refresh-token'과 같은 경 로 를 만 들 면 어떤 방법 을 가리 킬 수도 있 고 익명 함 수 를 직접 쓸 수도 있 습 니 다.

$app->post('auth/refresh-token', ['middleware' => 'jwt.refresh', function() {
  try {
    $old_token = JWTAuth::getToken();
    $token = JWTAuth::refresh($old_token);
    JWTAuth::invalidate($old_token);
  } catch (TokenExpiredException $e) {
    throw new AuthException(
      Constants::get('error_code.refresh_token_expired'),
      trans('errors.refresh_token_expired'), $e);
  } catch (JWTException $e) {
    throw new AuthException(
      Constants::get('error_code.token_invalid'),
      trans('errors.token_invalid'), $e);
  }
 
  return response()->json(compact('token'));
}]);
token 이 효력 을 잃 으 면 이 주 소 를 방문 하여 오래된 token 을 가 져 오 면 새로운 token 을 얻 을 수 있 습 니 다.새 token 을 저장 하고 api 에 접근 할 때 새 token 을 사용 합 니 다.이렇게 반복 한다.
token 의 효 과 는 매우 짧 지만 기본 값 은 한 시간 이지 만 갱신 시간 은 2 주 에 달 하 며 중복 로그 인 보다 편리 합 니 다.
클 라 이언 트 가 로그 인 한 후에 token 을 저장 하면 사용자 이름 비밀 번 호 를 가 져 올 위험 을 줄 일 수 있 습 니 다.
이곳 에 bug 가 있 습 니 다.오래된 token 은 더 이상 사용 할 수 없 지만 새로운 token 을 얻 을 수 있 습 니 다.이 문 제 는 0.6 판 에서 복원 되 었 다.급 하면 0.6 판 을 사용 할 수 있다.
처음에는 token 이 새로 고침 한 후에 계속 사용 할 수 있다 고 생각 했 는데 원래 새로운 token 으로 바 뀌 었 는데 이어서 사용 할 수 있 는 사상 이 가능 한 지 모르겠다.
이상 의 이 Laravel(Lumen)이 JWT-Auth 리 셋 token 문 제 를 해결 한 것 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 될 수 있 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기