본문 바로가기
Nodejs

[Nodejs] CORS 사용해서 특정 도메인만 접근 허용하기

by teamnova 2023. 9. 29.

안녕하세요. 오늘은 웹 개발하다 보면 보게될 오류인 CORS를 해결하기 위해 글을 작성했습니다.

 

CORS(Cross-Origin Resource Sharing)는 웹 브라우저에서 실행되는 웹 애플리케이션에서 다른 도메인에 있는 리소스를 요청할 때 발생하는 보안 정책입니다.

CORS를 사용하려면 웹 서버에서 특정 HTTP 헤더를 설정해야 하는데 아래 코드를 통해 알려드릴게요.

 

우선 서버는 express서버를 사용하니 express와 http, cors를 설치해줄게요.

npm install http express cors

 

그리고 index.js 파일을 작성해보겠습니다.

const http = require('http');
const express = require('express');
const app = express();
const server = createServer(app);
const cors = require('cors');

const PORT = 3000;

app.use(cors());

app.get('/', (req, res) => {
	res.send('cors test');
});

server.listen(PORT, () => {
	console.log(`Server running on ${PORT}`);
});

이렇게 하면 모든 도메인이 제한없이 해당 서버에 요청을 하고 응답을 받을 수 있는 상태가 되는것입니다.

 

이젠 반대로 특정 도메인만 요청가능하게 해볼게요.

const http = require('http');
const express = require('express');
const app = express();
const server = createServer(app);
const cors = require('cors');

const PORT = 3000;

let corsOptions = {
    origin: '허용할 도메인',
    credentials: true
}

app.use(cors(corsOptions));

app.get('/', (req, res) => {
	res.send('cors test');
});

server.listen(PORT, () => {
	console.log(`Server running on ${PORT}`);
});

이렇게 cors 에러가 뜨면 위 2가지 방법으로 해결을 해보시면 좋을거 같습니다!