[DB] JWT를 활용한 로그인과 로그아웃

ShinJuYong·2022년 7월 18일
0

기술면접

목록 보기
2/4

JWT란

  • JWT는 json web token의 약자로 쌍방향에서 쓸 수 있는 암호화된 토큰

내가 사용한 로그인 전략

짧은 시간의 액세스 토큰과 긴 시간의 리프레쉬 토큰을 사용하여 로그인과 로그아웃을 진행한다

액세스토큰은 클라이언트 단에 저장을 하고 있기에 탈취를 당할수 있지만
RefrshToken을 쿠키에 저장을하여 인가상태를 유지할수 있게 만들었다.

쿠키?

  • 쿠키는 외부의 공격을 막기위한 옵션들이 있다
    • Secure; httpOnly; : http 통신 외에는 쿠키의 접근을 불가능하게 만든다.

Redis를 사용한 로그아웃

  • 로그아웃시 클라이언트의 액세스토큰과 리프레쉬토큰을 받아 검증하고
  • 각 토큰의 정보를 Redis에 남은 유효기간까지의 기간을 TTL로 설정해 더이상 로그인을 못하게 막았다

만약 해당 토큰으로 다시 로그인을 시도하면 Redis에 정보가 담겨있어 로그인이 불가능하다.

0개의 댓글