도란한
212
2021-02-15 17:53:36
4
3143

jwt 토큰은 보통 어떻게 제거하나요??(로그아웃 시)


안녕하세요 신입 개발자입니다.

회사에 자바를 사용하는 사람이 저밖에 없어서 여기에 자주 물어보게 되네요ㅠㅠ

다름이 아니라

spring security + jwt를 사용해서 회원가입 및 로그인까지는 어찌어찌 구현을 했는데

로그아웃에 관한 정보는 없더라구요ㅠㅠ

로그아웃 시 발급했던 jwt토큰을 제거하면 될 거같은데 감이 안오네요 ㅠㅠ

구조는 rest api입니다!

0
  • 답변 4

  • 킁킁탐정
    844
    2021-02-15 19:38:59 작성 2021-02-15 19:39:32 수정됨

    기본적으로 JWT는 서버쪽에서 로그아웃을 할 수 없습니다. 그래서 보통은 JWT 토큰 주기를 짧게 하거나 또는 로그아웃 기능을 구현하려고 토큰을 DB에 보존하고 매 요청시 마다 로그아웃으로 인해 DB에서 삭제된 토큰이 아닌지등을 검사하여 비슷하게 구현할 수 있습니다. 이외에도 비슷하지만 다른 구현방법이 있습니다.

    외부에 API를 제공하여 사용하는게 아니면 JWT 사용하지 않고 단순 Cookie Session 방식을 사용하시기를 권해드립니다.


  • 도란한
    212
    2021-02-16 09:21:27

    킁킁탐정 
    답변 감사합니다 ㅠㅠ

    그럼 jwt에서 로그아웃까지 구현하려면 세션 처리하던 방식처럼 DB에 저장했다가 로그아웃 요청 들어오면 DB에서 체크해서 처리하는 방법으로 할 수 있다는 말씀이시죠??

  • 킁킁탐정
    844
    2021-02-16 11:25:33 작성 2021-02-16 11:26:01 수정됨

    네 맞습니다. JWT이 토큰이 유효한지, 유효한 상태에서 로그아웃을 시도했는지 등을 모두 처리해야해서 복잡도가 꽤 증가합니다. 특별하게 JWT를 사용해야할 이유가 없으면 간단한 방식을 사용하는것을 권하는 이유입니다.


  • 도란한
    212
    2021-02-16 13:19:46
    킁킁탐정
    감사합니다! 그냥 spring security만 적용하고 세션으로 인증처리 해야겠습니다
    jwt는 로그아웃까지 구현하려면 redis던가 이런걸 쓰는데 이해할 시간이 부족할거같아서..ㅋㅋ
  • 로그인을 하시면 답변을 등록할 수 있습니다.