본문 바로가기

일기

2022-12-26

지난주 같은 조원분과 함께 계속 끙끙대다가 결국은 해결을 못한 CORS 에러...

오전, 오후 모두 시간을 들여 찾아보면서 이것저것을 다 시도해 보았지만... 결국에는 그럼에도 해결을 하지 못했다..

그래서 중간중간 RefreshToken 만든 부분을 다시 또 만지면서 계속해서 코드를 이해하려고 노력했는데 이 글을 쓰는 지금도 완벽하게 이해가 가지는 않는 것 같다.

다만, 조금이나마 정리하자면...

 

 

 

 

 

 

Access Token

  • Access Token 은 유효기간을 짧게 한다. (보통 30분 ~ 1시간)
  • DB 에 저장하지 않는다.
  • 만료시 사용자는 Access 와 Refresh 토큰 모두 서버에 전송해서 인증한다.
  • 만료시 새로운 Access Token 을 발급받는다.
  • Access Token 을 탈취당한 사람은 유효기간이 지나면 사용이 불가능 하다.
  • 정상적인 클라이언트는 유효기간이 지나더라도 Refresh Token 을 사용하여 새롭게 발급 가능

Refresh Token

  • Access Token 발급 때 DB 에도 Refresh Token 을 새롭게 저장한다.
  • 만약 DB 에 저장된 토큰이 만료되지 않은 경우, Access Token 을 새로 생성할 이유가 없는 경우 서버는 Refresh Token 이 탈취당했다고 가정해서 만료시킨다.
  • 이 경우 정상적인 사용자의 토큰 또한 만료되었으니 다시 로그인 해야한다.

 

참고한 블로그 링크

 

JWT에서 Refresh Token은 왜 필요한가?

개인 프로젝트 중 JWT를 사용하는 SimpleTodoList 에서는 회원가입 후 로그인 시 아래처럼 JWT를 발급해준다.이 토큰은 애플리케이션 전반에서 사용자를 인증하는데 사용된다. 기존의 세션과는 달리

velog.io

 

 

지금은 저 위에서 정리한 내용 및 블로그에서 적혀있는 내용과도 일부 다르게 작동하는 것 같다.

그리고 또한 Redis 를 통해서 Refresh Token 을 발급하는 방법도 있는데, 이 방법은 Refresh Token 에 대한 이해가 확실해지면 그 때 시도를 해봐야 겠다.

'일기' 카테고리의 다른 글

2022-12-28  (0) 2022.12.28
2022-12-27  (0) 2022.12.27
2022-12-24  (0) 2022.12.24
2022-12-23  (0) 2022.12.24
2022-12-22  (0) 2022.12.22