Q. 질문
초창기에 쿠키로
refreshtoken
을 저장하는 것을 백엔드에서 다시 코드 리팩토링을 하여 시도하게 되었습니다. 😇기존에는 params로 accesstoken과 refreshtoken 모두 받았었는데, 현재는 accesstoken은 login api의 response로, refreshtoken은 응답 헤더의 set-cookie로 받고 있습니다.
(현재 응답 헤더에 set-cookie가 있지만 브라우저에는 쿠키가 저장되지 않고 있는데, 해당 문제도 백엔드에서 CORS 에러가 발생되게 잘못 보내고 있었다고 다시 업데이트해서 반영하시겠다고 하셨습니다.)
백엔드 서버가 업데이트 되고 나면, 이제 프론트에서 따로 제가 검색해서 알아낸 바에 의하면 쿠키 설정으로 를 true로 하면 자바스크립트에서 접근할 수 없다고 알고 있어서요. 하지만 httpOnly 설정을 하지 않으면 또
refreshtoken
을 저장해주어야 reissue 재요청이 가능한데… httpOnly
(백엔드 서버에서
httpOnly
옵션은 비활성화 되어있고, secure
는 활성화 했다고 답변해주셨습니다.)로컬 서버에서 https 설정을 할 수 있는 방법이 있을까요..? 🤔
제가 구글링한 것으로는 라이브러리(
mkcert
)를 설치해야 로컬환경에서 ssl 인증서를 받을 수 있다고 알고 있는데, 혹시 다른 방법이 있다면 공유해주시면 감사합니다!A. 멘토님 답변
- 네 사실 파람스로 받는건 조금 어색했었습니다. 잘하셨어요.
- 네 mkcert를 사용하시면 됩니다. nextjs mkcert 정도 키워드로 검색하면 https://velog.io/@pikadev1771/Next.js-로컬localhost에-https-적용하기 자세히 잘 나와있네요.
- 간단히 설명드리면 로컬 next서버를 띄울때 Next에서 제공하는 데브서버를 띄우는게 아니라 내가 작성한 node파일을 실행해서 서버를 띄우는건데요. 로컬 CA를 생성한뒤, 노드서버가 실행될때 이 인증서 파일과 키파일을 옵션으로 전달하며 서버를 띄우는겁니다.
나중에 시간이 되시면 한번 더 자세히 공부해보세요. 재밋습니다.
mkcert로 사설인증서를 생성하고 로컬 서버 설정을 한뒤, 클라이언트(브라우저)가 Https로 설정된 로컬서버로 접속하고, 이 과정에서 로컬서버는 클라이언트에게 인증서를 제공하고, 클러이언트와 웹서버(백엔드)와의 연결이 되고, 이제부터 데이터가 암호화가 되고..
이 과정이 실제 인증기관이 제공하는 인증서와 무슨 차이가 있는걸까? 궁금증도 한번 가져보시면 좋겠어요