Link ๐ฅ
CORS๋ Cross Origin Resource Sharing์ ์ฝ์๋ก, ๊ต์ฐจ ์ถ์ฒ ๊ณต์ ๋ผ๋ ์๋ฏธ์ ๋๋ค.
Origin์ โ scheme, โก host, โข port ๋ก ์ด๋ฃจ์ด์ง ๋๋ฉ์ธ์ ์๋ฏธํฉ๋๋ค. (IE์ ๊ฒฝ์ฐ port๋ฅผ ๋น๊ตํ์ง ์์)
โ scheme : https
โก host: www.naver.com
โข port: null (๊ณต๊ฐ๋์ง ์์)
ํ์ฌ โ ์์ ์ด ์ํ ์ถ์ฒ(Origin)๋ฅผ ๊ธฐ์ค์ผ๋ก โก ๋ค๋ฅธ ์ถ์ฒ(Origin)์ API๋ฅผ ์์ฒญํ๊ฒ ๋๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ด ์์ฒญ์ผ๋ก ๋์ด์ค๋ ๊ฒฝ๊ณผ๊ฐ ์์ ํ์ง ํ๋จํ๊ฒ ๋๋๋ฐ,
์๋ต์ ๋ณด๋ด๋ ์ถ์ฒ๊ฐ โ ์์ ์ด ์ํ ์ถ์ฒ๊ฐ ์๋, โก ๋ค๋ฅธ ์ถ์ฒ์ฌ๋ ์๋ก ์์๋๋ ์ถ์ฒ๋ผ๋ฉด ์์ฒญ์ ๋ํด ํ์ฉํด์ฃผ๋ ์๋ต ํค๋๋ฅผ ๋ณด๋ด, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ด๋ฅผ CORS(Cross Origin Resource Sharing)์ด๋ผ ํฉ๋๋ค.
๋ชจ๋ ์๋ฒ๋ค์ด ๋ค CORS๋ฅผ ์ธ์งํ์ง๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ ๊ฑฐ๋ถํ๋ค๊ณ ํ๋๋ผ๋, ์๋ฒ๋ ์ฒ๋ฆฌํด๋ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๊ฐ ์๊ธธ ์ ์๊ธฐ ๋๋ฌธ์
์๋ฒ๊ฐ ์์ ํ๊ฒ ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ๋ธ๋ผ์ฐ์ ์์ ํด๋น ์์ฒญ(CORS)์ ์ฒ๋ฆฌํ๋ค
CORS๋ ๋ค๋ฅธ Origin์ ๋ํ ์์ฒญ์ ํ์ฉํ๋ ์ ์ฑ ์ ๋๋ค.
๊ฐ์ Origin์์ http ํต์ ์ ํ๋ ๊ฒฝ์ฐ ์์์ cookie๊ฐ request header์ ๋ค์ด๊ฐ์ง๋ง, ๊ต์ฐจ ์ถ์ฒ๋ก ์์ฒญํ๋ ์ํฉ์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
Origin์ด ๋ค๋ฅธ http ํต์ ์์๋ request header์ ์ฟ ํค๊ฐ ์๋์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์๊ฒ ๋๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ด๊ฐ ์ด๋ค ์์ฒญ์ ๋ณด๋ด๋ ์ง ์๋ ค์ค ํ์๊ฐ ์์ต๋๋ค.
ํ๋ก ํธ > WithCredentials: true
์๋ฒ > Access-Control-Allow-Credentials: true
๋ง์ฝ ํ๋ก ํธ์์ CORS๊ด๋ จ ์ค์ ์ด ๋ค ๋๋ ์ดํ์ HTTP ์์ฒญ์ ๋ณด๋์ ๋ CORS ์ค๋ฅ๊ฐ ๋ฐ ๊ฒฝ์ฐ ํด๋น ์ค๋ฅ๋ฅผ ์บก์ณํด์ ๊ฐ์ด ํ์ธํด๋ณด๋ ๋ฐฉ๋ฒ
๋จผ์ ํ๋ก ํธ์์ ์๋ต ํค๋์ ์ ๋๋ก ๋ ์ ๋ณด๋ฅผ ๋ฃ์ด๋ ์ง ํ์ ์ ๊ฐ์ง๋ ๊ฒ์ด ์ค์ํ๋ค (credentials ๊ด๋ จ ์ค์ ์ ํ๋์ง?)
๋ง์ฝ ๊ฐ๋ฐ ํ๊ฒฝ์ ์์ด์ ์ธํ ์ ์ ํด๋์ ์ํ์ด๊ณ ์๋ฒ์ ์ธํ ์ด ์๋ฒฝํจ์๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค๋ฉด, ๊ฐ๋ฐ ํ๊ฒฝ์์์ ํ๋ก์ ์ค์ ๋ ๋์์ด ๋ ์ ์์ต๋๋ค.
ํด๋น ํ๋ก์ ์ค์ ์ ํ๊ฒฝ์ ๋ฐ๋ผ (CRA๋ฉด CRA) ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ฏ๋ก ํ์ธํด๋ณด๊ณ ๋ฃ์ผ์๋ฉด ๋ฉ๋๋ค!
axios๋ก ์๋ฒ ์ธก๊ณผ ํต์ ํ๋ ๊ณผ์ ์์ ํ๋ก ํธ์ชฝ axios์ฝ๋์ CORS๋ฅผ ์ค์ ํ์ง์์.
์๋ฒ์ธก์์ ์ค๋ ์ฟ ํค ๋ฐ์ดํฐ๊ฐ ์์ ํ์ง์๋ค๊ณ ์๊ฐํ์ฌ ๋ฐ์ง ์๊ณ ์์๊ณ ๊ทธ๋ก์ธํด ์ฟ ํค๊ฐ ์ ๋๋ก ์ ์ฅ ๋์ง์์๋ค.
์ฒ์์ ๋ฌธ์ ์ ๊ฐ ๋จผ์ง ์ฐพ์ง๋ชปํด ๊ณ ์์ ํ๋๋ฐ ๊ฒ์์ ํตํด ๊ณต๋ถํ๊ณ withCredentials: true, ์ ์ถ๊ฐํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
๋ฉด์ ์ ๋ณด๊ธฐ ์ํด cs์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ ์ค์ ๋ ์ข์ง๋ง ์ด๋ฐ ๊ฐ๋
๋ค ์์ฒด๋ฅผ ๊ณต๋ถํ๊ณ ์ดํดํ๋๊ฒ์ด ์ ๋ง ์ค์ํ๋ค๋๊ฑธ ๋ง์ด ๋๊ผ๋ค.
์ค์ ๋ ์ข์ง๋ง ์ด๋ก ๊ณต๋ถ๋ ๊พธ์คํ ํด์ผํ ๊บผ ๊ฐ๋ค.