📜  nodejs CORS 策略 (1)

📅  最后修改于: 2023-12-03 14:44:43.701000             🧑  作者: Mango

Node.js CORS 策略

CORS(跨源资源共享)是一种浏览器用于安全限制跨域请求数据的机制,确保只有许可的域可以请求特定资源。在 Node.js 中,要实现 CORS 策略,可以使用一个名为 cors 的第三方模块。

安装

使用 npm 安装 cors 模块:

npm install cors
用法

要使用 cors 模块,只需在 express 应用程序中引入它,并将其传递给应用程序的 use() 方法:

const express = require('express');
const cors = require('cors');

const app = express();

app.use(cors());
配置选项

cors 模块提供了许多配置选项,可以根据需要自定义您的 CORS 策略。以下是一些最常用的选项:

origin

指定允许访问您资源的域名。可以是一个字符串,也可以是一个函数,用于动态决定哪些域名允许访问您的资源。

app.use(cors({
  origin: 'https://example.com'
}));

或者:

app.use(cors({
  origin: function (origin, cb) {
    if (origin === 'https://example.com') {
      cb(null, true);
    } else {
      cb(new Error('Not allowed by CORS'));
    }
  }
}));
methods

指定允许的 HTTP 方法。

app.use(cors({
  methods: ['GET', 'POST', 'PUT', 'DELETE']
}));
allowedHeaders

指定允许的 HTTP 头。

app.use(cors({
  allowedHeaders: ['Content-Type', 'Authorization']
}));
exposedHeaders

指定在响应中公开的 HTTP 头。

app.use(cors({
  exposedHeaders: ['Content-Length', 'X-Foo']
}));
credentials

指定在跨域请求中发送凭据(如 Cookie 或 HTTP 认证信息)。

app.use(cors({
  credentials: true
}));
结论

在 Node.js 中使用 cors 模块非常简单,并且可以轻松地配置您自己的 CORS 策略。使用它可以确保您的资源仅在授权的域名上访问,从而提高安全性。