CORS 는 보안상의 이유로 1개의 서버에서 1개의 리소스만 공유되던것을 다른 자원에 접근할수 있게 하는 정책이다.
CORS 를 설정할때 'Access-Control-Allow-Origin' 옵션을 , , none 으로 설정할수 있는데 보안상 (모두가 사용가능) 이 아닌 특정한 몇몇 origin 을 설정하고 싶어서 이것저것 시도해봤다.
'https://www.google.com https://www.naver.com' // 구글과 네이버 둘다 작동되지 않는다,
['https://www.google.com', 'https://www.naver.com'] // 역시 작동하지 않는다.
`https://www.${google || naver}.com // google 에서만 작동된다.
방법을 찾던중 request.headers 를 통해 origin을 접근할수 있다는것을 발견했다.
따라서
const server = http.createServer((req, res) => {
let headers = {
//cors 설정
}
const origins = ['https://www.google.com', 'https://www.naver.com'];
let reqOrigin = req.headers.origin;
if(origins.indexOf(reqOrigin) > -1) {
//origins 안에 reqOrigin 이 존재한다면
headers['access-control-allow-origin'] = reqOrigin;
}
}
을 통해 여러개의 cors allow origin 을 설정할수 있다.