React.js
[React] Cross-Domain Request 시 set-cookie가 되지 않는 이슈 [Same-Site:Strict]
Chunho
2023. 1. 10. 15:25
API에 로그인 요청 이후, API에 로그인 세션을 확인하는 요청을 보냈을 때 404를 응답했다.
분명 로그인 요청은 200의 응답과 함께 정상적으로 성공을 했지만, 세션을 받아오지 못하는 이유를 알 수 없었다.
로그인 요청의 Response Header에서 Set-cookie의 same-site 값이 Strict로 설정이 되어있었고,
서로 다른 도메인으로 요청을 보냈기에 set-cookie가 되지 않았 던 것이다.
이를 해결하기 위해 proxy 설정을 해주었다.
React 프로젝트의 src 디렉토리 안에 setupProxy.js 파일을 만들어 준 뒤
const {createProxyMiddleware} = require('http-proxy-middleware')
const baseUrl = '요청을 보낼 API서버 URL'
module.exports = function (app) {
app.use('/api', (req, res, next) => {
createProxyMiddleware({
target: baseUrl,
changeOrigin: true,
pathRewrite: {
'^/api/': '/'
},
logLevel: 'error',
cookieDomainRewrite: {
'*': 'localhost'
}
})(req, res, next)
})
}
아래와 같이 http-proxy-middleware 라이브러리를 사용하여 proxy를 설정해준다.
이후 요청을 /api로 보내면,
로그인 성공 시 정상적으로 쿠키가 저장되는 것을 확인할 수 있었다.