From aaaf79d2a8f6b107ee838bc81646596e8b9b4da9 Mon Sep 17 00:00:00 2001
From: apsr23 <apsr23@inf.ufpr.br>
Date: Tue, 8 Apr 2025 09:16:15 -0300
Subject: [PATCH] ADD CORS permission

---
 env.example    | 14 ++++++++++++++
 package.json   |  2 ++
 pnpm-lock.yaml | 22 ++++++++++++++++++++++
 src/index.ts   |  6 ++++++
 4 files changed, 44 insertions(+)
 create mode 100644 env.example

diff --git a/env.example b/env.example
new file mode 100644
index 0000000..da1acaa
--- /dev/null
+++ b/env.example
@@ -0,0 +1,14 @@
+# code config
+NODE_ENV=development
+PORT=3000
+
+# db config
+DB_HOST=localhost
+DB_USER=postgres
+DB_PASSWORD=123mudar
+DB_NAME=treinamento
+DB_PORT=5432
+DB_URL=postgresql://postgres:123mudar@localhost:5432/treinamento
+
+# secret
+APP_SECRET=hash_aleatoria_bem_longa
diff --git a/package.json b/package.json
index 87b311f..e47aaa3 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
   "packageManager": "pnpm@10.5.2",
   "dependencies": {
     "bcrypt": "^5.1.1",
+    "cors": "^2.8.5",
     "dotenv": "^16.4.7",
     "dotenv-expand": "^12.0.1",
     "drizzle-orm": "^0.40.0",
@@ -27,6 +28,7 @@
   },
   "devDependencies": {
     "@types/bcrypt": "^5.0.2",
+    "@types/cors": "^2.8.17",
     "@types/express": "^4.17.21",
     "@types/jsonwebtoken": "^9.0.9",
     "@types/node": "^22.13.9",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ec6f78c..92ccab7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
       bcrypt:
         specifier: ^5.1.1
         version: 5.1.1
+      cors:
+        specifier: ^2.8.5
+        version: 2.8.5
       dotenv:
         specifier: ^16.4.7
         version: 16.4.7
@@ -39,6 +42,9 @@ importers:
       '@types/bcrypt':
         specifier: ^5.0.2
         version: 5.0.2
+      '@types/cors':
+        specifier: ^2.8.17
+        version: 2.8.17
       '@types/express':
         specifier: ^4.17.21
         version: 4.17.21
@@ -539,6 +545,9 @@ packages:
   '@types/connect@3.4.38':
     resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
 
+  '@types/cors@2.8.17':
+    resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
+
   '@types/express-serve-static-core@4.19.6':
     resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
 
@@ -674,6 +683,10 @@ packages:
     resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
     engines: {node: '>= 0.6'}
 
+  cors@2.8.5:
+    resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+    engines: {node: '>= 0.10'}
+
   create-require@1.1.1:
     resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
 
@@ -1679,6 +1692,10 @@ snapshots:
     dependencies:
       '@types/node': 22.13.11
 
+  '@types/cors@2.8.17':
+    dependencies:
+      '@types/node': 22.13.11
+
   '@types/express-serve-static-core@4.19.6':
     dependencies:
       '@types/node': 22.13.11
@@ -1827,6 +1844,11 @@ snapshots:
 
   cookie@0.7.1: {}
 
+  cors@2.8.5:
+    dependencies:
+      object-assign: 4.1.1
+      vary: 1.1.2
+
   create-require@1.1.1: {}
 
   debug@2.6.9:
diff --git a/src/index.ts b/src/index.ts
index 7958f8e..e73cc17 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -3,11 +3,17 @@ import dotenv from 'dotenv'
 import User from './handlers/user';
 import implant from './handlers/implants'
 import { tokenAuthenticator} from '@/middleware/auth'
+import cors from 'cors'
 
 // Carregar variáveis de ambiente
 dotenv.config()
 
 const app = express()
+app.use(cors({
+  origin: 'http://localhost:5173', 
+  methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
+  allowedHeaders: ['Content-Type', 'Authorization'],
+}));
 
 // Middlewares
 app.use(urlencoded({ extended: true }))
-- 
GitLab