개발 Q&A

제목 JWT 새로발행시 기존 토큰 만료방법 문의드려요
카테고리 PHP
글쓴이 벨라도 작성시각 2019/08/08 14:45:07
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 9712   RSS

안녕하세요 

현재 여러 홈페이지에 노출될  데이터 관리 를 위한 REST API를 테스트중입니다. 

GET은 아무제약없이 POST PUT DELETE 는 JWT 토큰을 발행해서 관리자만 작업할수있게 하려합니다. 

 

slimphp + firebase/jwt + tuupola middleware jwt 사용해서

관리자가 로그인정보를 보내서 접속이되면 JWT토큰 발행하는데 까진 작업이됬는데요 

JWT토큰을 처음 써보는데 발행된 토큰의 만료기간이 지나지 않았을때 같은 접속자가 또 다시 새로 발행하면 

기존토큰이 만료가되는게 아닌 지정해놓은 만료시간 전까진 기존 토큰과 새로 발행한 토큰 모두 같이 사용가능하더라고요 

이부분을 새로 토큰 발행 했을때 기존 토큰 만료작업을 어떻게 해야할까요?? 

 

JWT은 따로 관리자가 만료를 못시키고 만료시간을 짧게 잡아야만 한다고  들었는데 다른방법이 없는건지요

토큰 발행시마다 값을다르게줘서 데이터베이스에 발행된 토큰 저장하고 접속시 DB로 한번 더 비교를 하는 방법은 어떨까요? ;;; 

 

선배님들 이부분 어떻게 처리하는게 좋은지 알려주세요 ^^ 

 

읽어주셔서 감사합니다.

 다음글 AWS S3 파일 업로드하는 방법 (3)
 이전글 구현방법 문의 드립니다. (5)

댓글

변종원(웅파) / 2019/08/08 14:58:11 / 추천 1

서버 밸리데이션을 안하려고 jwt 쓰는거 아닌가요? 다시 발급 받는건 프론트에서 제어를 할 수 있습니다.

jwt 토큰을 가지고 있고 만료되지 않았다면(자기가 알죠) 재발급을 요청하지 않게 하면 됩니다.

한쪽 관점에서만 보지 마시고 서버측면과 운영측면 등 넓은 시선으로 보세요.

한대승(불의회상) / 2019/08/08 15:08:43 / 추천 1
작성하신 방법은 jwt 토큰 자체를 키로 쓰는거와 다를바 없습니다.
벨라도 / 2019/08/08 15:36:18 / 추천 0

웅파님 불의화상님 답변감사합니다~

 

답변을 보고난뒤 다시 생각하니 위에쓴 작업으론 단순히 아이디 비번을 접속시마다 치지않는정도밖에 안되는거군요 ㅎㅎ;;

 

그리고 어차피 토큰안에 정보가 다 들어가잇으니 토큰이 노출되면 기존 토큰이 만료가 되던안되던이 문제는 아니겠네요...

 

단순히 저렇게 작업하면 보안에 상당히 안좋겠네요..

어디서 부터 다시 생각을해서 작업을해야할지 어떤방법으로 접근하면 될지 멘붕오네요

일단 RESTAPI 보안등에 대해서 제대로 다시 찾아봐야겠습니다.

간단한 조언이라도 부탁드립니다. ㅠ.ㅠ

 

변종원(웅파) / 2019/08/08 16:50:11 / 추천 1
그래서 api에서는 토큰 방식과 유효성검사를 지속적으로 하고 있는 겁니다. jwt가 편하긴 하겠지만 개인정보나 주요 정보를 로딩하는 api에는 사용하지 않습니다.
벨라도 / 2019/08/08 21:33:36 / 추천 0

웅파님 조언 감사합니다

심플한 api는 가볍고빠른 jwt 이보다 많은 정보를 가진 api oauth를 사용하는거군요

덕분에 인증방식에대해서 좀 더 자세히 배우게됬네요 감사합니다 ^^