작성
·
251
0
안녕하세요 제로초님 jwt로 구현을 해보려고 시도 중입니다!
이해가 안되는 것들이 많아 질문 남깁니다 ㅠㅠ
1. 서버에서 jwt토큰을 발급할때 클라이언트에서 사용할 데이터들(이름, 주소, 프로필 이미지 등)을 jwt 토큰 페이로드에 넣어서 보내고 클라이언트에선 토큰만으로 해당 데이터를 추출하여 사용하는 방식이 맞는건가요?
2. refresh 토큰은 서버에서 별도로 저장하지만 클라이언트에서도 access 토큰이 만료되면 refresh 토큰을 보내야 해서 클라이언트에서도 별도로 저장을 해야할지 싶은데 로컬스토리지나 쿠키에 저장을 한다면 결국 탈취당할 위험이 있기에 클라이언트에서 refresh토큰을 어디에 보관해야하는지 궁금합니다.
3. XSS 공격을 막기위해 cookie에 HttpOnly 옵션으로 자바스크립트에서 접근을 못하게 막는다면 클라이언트 개발하는 코드에서도 document.cookie 로 쿠키에 접근을 못하는게 맞나요??
4. 쿠키에 저장하게 된다면 모든 요청마다 헤더에 쿠키정보가 자동으로 담겨서 보내지는 걸로 알고있는데 그렇기에 쿠키보다 로컬스토리지를 사용하는 방법이 더 선호되는지 궁금합니다!
답변 1
0
1. 네 그렇게 가능합니다.
2. 쿠키나 로컬스토리지에 하시는수밖에 없습니다. 그리고 탈취당하지 않게 철저히 점검하세요.
3. httpOnly 쿠키만 쓰면 알아서 document.cookie가 비어있습니다.
4. 네 토큰 용량이 크다면 로컬스토리지에 저장해서 필요할 때에만 전송해야 서버 트래픽을 줄일 수 있습니다.