[Spring Security + JWT] Access, Refresh 토큰을 DB에 저장해야하는 이유

• DB에 토큰을 저장하는 주요 이유는 자동 로그인을 가능하게 하기 위함이다. Spring Security에서 유저 토큰은 기본적으로 security context에 저장되는데, 이는 서버가 꺼지면 초기화되므로 토큰 정보를 유지하기 위해 DB에 저장해야 한다.
• DB에 토큰을 저장하면 서버가 다운되었다가 다시 켜졌을 때, DB의 토큰 정보를 통해 유저 로그인을 유지할 수 있다. 또한, 서버가 여러 대일 경우에도 서버 간에 토큰을 공유할 수 있다.
• 서버 외의 다른 곳에 토큰을 저장하지 않으면, 로그인한 서버가 아닌 다른 서버로 요청이 중계될 때 인증 실패가 발생할 수 있다. 이 경우, 유저는 재로그인을 해야 한다.
• DB에 토큰을 저장하면, 서버가 바뀌어도 DB에서 클라이언트의 토큰을 조회할 수 있으므로, 유저가 다시 로그인할 필요가 없다. 이렇게 조회된 토큰은 해당 서버의 security context에 저장되어 사용된다.

북마크
공유하기
신고하기