▪ AccessToken , RefreshToken 원리
AccessToken , RefreshToken은 로그인, 회원 가입 인증을 구현하면서 여러 차례 쓴 적이 있지만 제대로 메모해 둔 적은 없는 것 같다. 나는 단순히 accessToken을 받은 이후에 만료가 되면 RefreshToken을 다시 발급 받는 것이라고 생각했지만 그것이 아니였다!! 😐
accessToken과 refreshToken의 큰 차이점은 유효기간에서 볼 수 있는데, accessToken 이 2-3시간 정도라면 refreshToken은 2주, 한 달까지도 유효기간을 설정할 수가 있다.
- user가 로그인을 요청하면 server에서 DB로 회원을 확인하고 server에서 accessToken과 refreshToken을 user에게 발급한다.
- user는 server에게 발급받은 accessToken과 함께 데이터 요청을 server로 보내고
- server는 요청받은 accessToken이 유효한지 검사 한 후 요청을 받아들인다.
- 이후 accessToken이 만료가 되고 user가 다시 server에서 데이터 요청과 함께 만료된 accessToken을 보내면
- server는 accessToken이 만료된걸 확인한 후 돌려보내고 user가 다시 accessToken 발급요청을 하면
- refreshToken을 확인후 별도의 DB 인증 절차없이 accessToken을 발급한다.
▪ FormData가 다루는 데이터 타입
server로 이미지 파일을 보낼 때 파일째로 던졌는데, 이제 이 부분을 프론트에서 s3버킷에서 이미지 관리를 하고 url을 발급받아서 server로 전송해주기로 했다. FormData를 몇 번 다루기는 했지만 이렇게 많은 데이터가 들어가있는 방식을 다뤄본 적이 없어서 당황스러웠다. 무튼 server로 보내는 api를 한참보고 있는데, 파라미터 값을 잘 맞춰서 보냈다고 생각했는데 계속해서 400 error가 나는 것이 아닌가. 보내는 데이터 중에 날짜를 다루는 데이터가 있었는데, /YYYYMMSS/ 으로 포맷을 맞춰서 date 타입으로 보낸다고 생각했는데, 그게 아니였다.
FormData는 Blob과 String 타입만 전달할 수 있다는 것이다!! 날짜 파라미터 타입이 안 맞아서 계속 오류가 났던것! 400 오류가 뜬 그 순간 내 코드가 뭔가 잘 못 되었다고 생각했고 온갖 날짜 포맷을 다 보내봤는데 안 되서 왜 그런 것인가 했는데, 파라미터 타입 문제였다!!! formData - blob || string! 이렇게 또 하나 배웠다!! 😁
'개발 > 📝 TIL' 카테고리의 다른 글
[220702] TIL - aixos. get 쿼리로 쏘다! (0) | 2022.07.03 |
---|---|
[220701] TIL - git! 너란 녀석!! (원격 저장소에 잘못 push한 파일들 지우기) (0) | 2022.07.03 |
[220410] TIL (0) | 2022.04.10 |
[220330] TIL - Update (0) | 2022.03.31 |
[220328] TIL (0) | 2022.03.28 |