오늘 뭐했냐/함께했던 작업들

23.08.06 쿠키 전달의 문제

스스로에게 2023. 8. 10. 02:38

 로그인을 통해 생성된 쿠키 안에 있는 토큰이 다른 API요청에선 사용하지 못하는 문제가 발생했다. 이를 해결하기 위해서 처음엔 https와 http의 문제라고 생각하고 시도 해봤지만 이건 아니었고, 다음으로 JSON으로 토큰을 전달해 주고 받는 방법을 생각했는데 이는 보안상 좋지 않았기에 이것도 해결할 수는 없었다. 그렇게 고민하던 중 팀원 분 중에 한 분이 해결책을 주셨다. 그래서 이를 통해서 코드를 수정하고 한편으로는 각 옵션들이 무슨 기능을 하는지 알아봤다.

res.cookie("MM", `Bearer ${accessToken}`, {
                secure: true, // https만 허용
                httpOnly: true, // true로 설정되면, 쿠키는 JavaScript를 통해 접근할 수 없습니다.
                sameSite: 'none', // 모든 요청에 대해서 쿠키 허용
                });

 백엔드와 프론트엔드가 다른 도메인을 사용하기에 sameSite: 'none'으로 다른 도메인에서도 쿠키를 사용할 수 있게 하였고, 위에 설정으로 secure: true를 추가했다. 이는 https에서만 사용할 수 있게 해주는 옵션이다. 마지막으로 httpOnly: true로 설정하여 보안성을 강화하고 아직은 프론트엔드 쪽에서 쿠키를 직접적으로 사용할 일이 없기 때문에 이렇게 설정하였다.