퍼퓨미즘에서는 로그인 인증 기능을 위해 JWT 액세스토큰과 리프레시 토큰을 사용했다.
[프론트엔드] ID와 비밀번호를 준다.
[백엔드] ID와 비밀번호를 검증하고 AccessToken과 RefreshToken, AccessToken의 만료시간을 반환해준다. 이 때 생성한 RefreshToken은 DB에 {ID,RefreshToken}으로 저장한다.
[프론트엔드] 반환받은 AccessToken을 매 api 호출마다 헤더에 붙여서 전송한다.
[백엔드] api호출시 헤더의 AccessToken을 확인하고 유효한지, 만료기간이 지났는지를 체크 후 api를 동작시킨다.
[프론트엔드] AccessToken의 만료 기간이 지나거나, 30초 미만으로 남았다면, 백엔드에 RefreshToken을 붙여 Reissue 요청을 보낸다.
[백엔드] Reissue요청이 들어올 경우, RefreshToken이 DB에 있는 것인지 확인한 후, 맞다면 AccessToken과 새로운 AccessToken 만료 시간을 반환한다.
[프론트엔드] Reissue결과 반환된 AccessToken과 만료기간을 저장하여 다음 api호출에 사용한다.
Json Web Token의 약자로 인증에 필요한 정보를 담은 JSON 토큰이다.
쿠키는 Key-value 형식의 문자열 덩어리로 서버를 통해 브라우저에 저장되는 기록 정보 파일이다
XSS(Cross Site Scripting)으로 공격자가 의도하는 js코드를 삽입하여 피해자의 웹 코드에서 실행시키는 것
정상적인 요청을 가로채 변조된 요청을 보내 악의적인 동작을 수행하게 하는 공격
출처 : https://bcp0109.tistory.com/301
https://wildeveloperetrain.tistory.com/59