- 토큰 탈취의 문제
- 유저를 인증하고 식별하기 위한 Json Web Token
- JWT와 세션의 가장큰 차이점은 "인가"에 대한 정보를 누가 담고 있느냐이다.
- 세션(stateful)과는 다르게 무상태(stateless)이다.
- 모바일에서도 잘 동작한다.
- 모바일앱의 특성상 주로 JWT 방식으로 인증/인가를 진행.
- 장시간 로그인과 세션
- DB 조회가 필요 없다.
- 쿠키/세션과 다르게 토큰의 길이가 길어, 인증요청이 많아지면 네트워크 부하가 심해진다.
- payload 자체는 암호화가 되지 않아서 중요한 정보를 담을수 없다.
- 토큰을 탈취당하면 대처가 어렵다.(강제로 만료시키는등)
- 이를 해결하기 위해 DB에 토큰값을 저장하는 순간 JWT의 장점인 stateless가 사라진다. 완벽한 정답은 없고 각자의 상황에 맞춰 사용하는게 답일듯 하다.