도라지보다더덕
240
2020-12-04 01:01:44
2
190

jwt refresh token


안녕하세요.


서버 공부 중인 학생입니다. 


다름이 아니라 jwt의 refresh token에 대해 궁금증이 생겨 질문합니다.


좀 찾아보니깐 refresh token을 서버쪽 DB와 클라이언트 쪽 두 곳 다 저장해놓고


클라이언트가 refresh token을 서버로 전송하고 서버는 DB안에 있는 refresh token과 비교한 뒤 access token을 발급해주는 것 같더라구요


그런데 여기서 의문이 있습니다.


refresh token을 바로 verify 해서 유효할 경우 access token을 보내주는 방법으로 안하고 굳이 DB에 존재하는지 확인하는 이유에 대해서입니다.


그리고 디비에 저장하면 쿠키 세션과 크게 다르지 않지 않나요? 제가 방법을 잘못이해한 걸까요?


답변 부탁드립니다




1
  • 답변 2

  • 초보아키텍처
    25
    2020-12-04 02:23:01

    jwt refresh token이라면 구지 db에서 관리할 필요가 없지 않을까요?

    물론 어떻게 만드냐에 따라 천차만별이겠지만, jwt를 쓰는 이유중에 하나가 db로 token 들을 관리하지 않기 위함도 큰 부분입니다.

    만약에 refresh token을 구지 db로 구현하겠다고 하면 이런 것들이 있겠네요

    사용자가 로그아웃을 시도했을 때 사용자에게 발급된 token들을 모두 무효화 처리하고 싶다던가 할때 등...그런 것 아니면 말씀하신대로 efresh token을 바로 verify 해서 유효할 경우 access token을 보내주는 방법으로도 충분할 것 같습니다.


    Spring Security OAuth2도 jwt token인 경우 그렇게 하고 있구요.....

    암튼 구현하기 나름일듯 싶습니다.
     


  • 도라지보다더덕
    240
    2020-12-05 19:03:17

    답변 감사합니다!

  • 로그인을 하시면 답변 을 등록할 수 있습니다.