Spaces:
Running
Running
Upload 34 files
Browse files- src/app.js +5 -0
- src/server.js +7 -0
src/app.js
CHANGED
|
@@ -47,6 +47,11 @@ app.use(
|
|
| 47 |
cors({
|
| 48 |
origin(origin, callback) {
|
| 49 |
if (!origin || env.clientOrigins.includes(origin)) return callback(null, true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
return callback(new Error("Not allowed by CORS"));
|
| 51 |
},
|
| 52 |
credentials: true,
|
|
|
|
| 47 |
cors({
|
| 48 |
origin(origin, callback) {
|
| 49 |
if (!origin || env.clientOrigins.includes(origin)) return callback(null, true);
|
| 50 |
+
// Logged (not just thrown) so a mismatched frontend domain shows up
|
| 51 |
+
// immediately in the server logs with the exact rejected value —
|
| 52 |
+
// compare this directly against the CORS allow-list logged at
|
| 53 |
+
// startup to spot typos, protocol mismatches, or a missing entry.
|
| 54 |
+
logger.warn(`CORS rejected origin: "${origin}" (allow-list: ${JSON.stringify(env.clientOrigins)})`);
|
| 55 |
return callback(new Error("Not allowed by CORS"));
|
| 56 |
},
|
| 57 |
credentials: true,
|
src/server.js
CHANGED
|
@@ -12,6 +12,13 @@ async function start() {
|
|
| 12 |
await connectDB();
|
| 13 |
server = app.listen(env.port, () => {
|
| 14 |
logger.info(`Aynwerd API listening on port ${env.port} [${env.nodeEnv}]`);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
});
|
| 16 |
} catch (err) {
|
| 17 |
logger.error("Failed to start server", { error: err.message });
|
|
|
|
| 12 |
await connectDB();
|
| 13 |
server = app.listen(env.port, () => {
|
| 14 |
logger.info(`Aynwerd API listening on port ${env.port} [${env.nodeEnv}]`);
|
| 15 |
+
// Logged deliberately at startup: this is the #1 source of CORS
|
| 16 |
+
// support confusion (a typo'd env var name, stray quotes, a
|
| 17 |
+
// trailing slash, or the value falling back to its localhost
|
| 18 |
+
// default because it was never actually set). Seeing the parsed
|
| 19 |
+
// array here removes all guesswork versus staring at the raw
|
| 20 |
+
// dashboard value.
|
| 21 |
+
logger.info(`CORS allow-list (CLIENT_ORIGINS parsed as): ${JSON.stringify(env.clientOrigins)}`);
|
| 22 |
});
|
| 23 |
} catch (err) {
|
| 24 |
logger.error("Failed to start server", { error: err.message });
|