架构: 添加CORS配置中间件
This commit is contained in:
parent
a93ae053a4
commit
a63e0e558f
@ -1,5 +1,5 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const cors = require('cors');
|
// const cors = require('cors'); // Using custom cors middleware
|
||||||
const authRoutes = require('./routes/auth');
|
const authRoutes = require('./routes/auth');
|
||||||
const fileRoutes = require('./routes/files');
|
const fileRoutes = require('./routes/files');
|
||||||
const shareRoutes = require('./routes/share');
|
const shareRoutes = require('./routes/share');
|
||||||
@ -18,7 +18,8 @@ const logger = require('./middleware/logger');
|
|||||||
const app = express();
|
const app = express();
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
|
|
||||||
app.use(cors());
|
const corsMiddleware = require('./middleware/cors');
|
||||||
|
app.use(corsMiddleware);
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(logger);
|
app.use(logger);
|
||||||
|
|
||||||
|
|||||||
29
backend/src/middleware/cors.js
Normal file
29
backend/src/middleware/cors.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// CORS 中间件配置
|
||||||
|
const cors = require('cors');
|
||||||
|
|
||||||
|
const corsOptions = {
|
||||||
|
origin: (origin, callback) => {
|
||||||
|
// 允许的域名列表
|
||||||
|
const allowedOrigins = [
|
||||||
|
'http://localhost:3000',
|
||||||
|
'http://localhost:5173',
|
||||||
|
'http://127.0.0.1:3000',
|
||||||
|
'file://',
|
||||||
|
// 添加你的生产域名
|
||||||
|
];
|
||||||
|
|
||||||
|
// 允许没有 origin 的请求(如 Postman)
|
||||||
|
if (!origin || allowedOrigins.includes(origin) || origin.endsWith('.yourdomain.com')) {
|
||||||
|
callback(null, true);
|
||||||
|
} else {
|
||||||
|
callback(new Error('Not allowed by CORS'));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
||||||
|
allowedHeaders: ['Content-Type', 'Authorization'],
|
||||||
|
exposedHeaders: ['Content-Length', 'X-Requested-With'],
|
||||||
|
credentials: true,
|
||||||
|
maxAge: 86400, // 24小时
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = cors(corsOptions);
|
||||||
Loading…
Reference in New Issue
Block a user