Skip to content

Commit c6cb3f4

Browse files
authored
Merge pull request #536 from LeChatErrant/cors
Add CORS middleware
2 parents 00cfd03 + b122752 commit c6cb3f4

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

.envrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ export SESSION_SECRET=keyboard_cat
22
export PORT=8000
33
export MODE=local
44

5+
export WHITELIST=http://localhost,https://front.lechaterrant.com
6+
57
export DEFAULT_ADMIN_EMAIL=admin@api-template.com
68
export DEFAULT_ADMIN_PASSWORD=admin
79

package-lock.json

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"class-transformer": "^0.5.1",
4848
"class-validator": "^0.13.1",
4949
"connect-redis": "^6.0.0",
50+
"cors": "^2.8.5",
5051
"env-var": "^7.1.1",
5152
"express": "^4.17.1",
5253
"express-async-handler": "^1.2.0",
@@ -64,6 +65,7 @@
6465
"devDependencies": {
6566
"@types/bcrypt": "^5.0.0",
6667
"@types/connect-redis": "0.0.18",
68+
"@types/cors": "^2.8.12",
6769
"@types/express": "^4.17.13",
6870
"@types/express-session": "^1.17.4",
6971
"@types/http-errors": "^1.8.1",

src/app.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import express from 'express';
22
import helmet from 'helmet';
3+
import cors from 'cors';
34

45
/* This import is only used for class-transformer side effects */
56
import 'reflect-metadata';
67

78
import router from './routes';
9+
import { config } from './appConfig';
810
import session from './appSession';
911
import requestLogger from './middlewares/requestLogger';
1012
import errorMiddleware from './middlewares/errorMiddleware';
@@ -21,6 +23,9 @@ app.use(session);
2123
app.use(express.json());
2224
app.use(express.urlencoded({ extended: false }));
2325
app.use(helmet());
26+
app.use(cors({
27+
origin: config.whitelist,
28+
}));
2429
app.use(meMiddleware);
2530
app.use(requestLogger);
2631

src/appConfig.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export enum MODES {
1111

1212
export const config = {
1313
port: env('PORT').asPortNumber(),
14+
whitelist: env('WHITELIST').asArray(','),
1415
sessionSecret: env('SESSION_SECRET').asString(),
1516
mode: env('MODE').asEnum(Object.values(MODES)),
1617
defaultAdminEmail: env('DEFAULT_ADMIN_EMAIL').asString(),

0 commit comments

Comments
 (0)