1. 구글링을 해보면 세션에 비해 JWT가 가지는 장점들 중에 하나가 No database lookups라고 나오는데
세션 방식도 초기에 세션ID 발급을 할때만 DB를 접속해서 아이디, 비번을 확인하고 그 이후부터는 유저가 세션ID들고 요청보내면 서버 메모리에서 처리하지 않나요??
2. JWT를 이용한 구현방식중에 access token과 refresh token을 2개 발급하고,
refresh token은 서버가 redis같은 DB에 저장하는 방식이 자주 보이던데 이렇게 구현할 경우 세션방식과 차이점이 없지않나요? 이렇게 구현했을때 뭐가 좋은건가요?
JWT은 payload와 그에 맞는 서명이 붙은 포맷일뿐 그걸 어떻게 쓰는지는 자유임.
1. 세션은 세션 ID를 저장 해야함. 메모리에 하던 DB에 하던 어쩄든 stateful함. 존왓탱은 stateless함. 2. 몰겠네 무슨 이득이 있지?
님이 찾는건 jwt가 아니라 클레임 기반 인증으로 찾아야 나옴 - dc App
클레임 기반 인증은 토큰 차단/강제 만료만 포기하면 stateless하게 사용할수있음 - dc App
그리고 2는 oauth고 리프레시까지 넘기는건 쓰는 입장에선 세션상태랑 관계없이 서드파티에 토큰갖고 뭔가 할때 토큰 만료를 막는게 목적인거 - dc App
억세스 토큰 기반으로 만들고 리프레시 토큰만 안전하게 서비스에 쏴주면 별로 신경쓸게 없어서 날먹임 - dc App