File tree Expand file tree Collapse file tree 3 files changed +37
-6
lines changed Expand file tree Collapse file tree 3 files changed +37
-6
lines changed Original file line number Diff line number Diff line change @@ -10,19 +10,22 @@ import usersRouter from "#routes/users";
1010import authRouter from "#routes/auth" ;
1111import accreditationRouter from "#routes/accreditation" ;
1212import infrastructureRouter from "#routes/infrastructure" ;
13+ import { identifyUser } from "#middleware/identifyUser" ;
1314
1415const app = express ( ) ;
1516const currDirName = dirname ( fileURLToPath ( import . meta. url ) ) ;
1617
18+ morgan . token ( "remote-user" , ( req ) => req . user ) ;
19+ app . use ( identifyUser ) ;
20+ app . use ( cors ( ) ) ;
21+ app . use ( express . json ( ) ) ;
22+ app . use ( express . urlencoded ( { extended : false } ) ) ;
23+ app . use ( cookieParser ( ) ) ;
1724app . use ( morgan (
1825 ":remote-addr - :remote-user \":method :url HTTP/:http-version\" :status \":referrer\" \":user-agent\"" ,
1926 { stream : logger . stream } ,
2027) ) ;
2128
22- app . use ( cors ( ) ) ;
23- app . use ( express . json ( ) ) ;
24- app . use ( express . urlencoded ( { extended : false } ) ) ;
25- app . use ( cookieParser ( ) ) ;
2629app . use ( express . static ( path . join ( currDirName , "public" ) ) ) ;
2730
2831app . use ( "/" , indexRouter ) ;
Original file line number Diff line number Diff line change 1+ import jwt from "jsonwebtoken" ;
2+ import util , { logger } from "#util" ;
3+
4+ export async function identifyUser ( req , res , next ) {
5+ const authHeader = req . headers . authorization ;
6+ const token = authHeader && authHeader . split ( " " ) [ 1 ] ;
7+ if ( token === undefined ) {
8+ req . user = "anonymous" ;
9+ next ( ) ;
10+ return false ;
11+ }
12+ try {
13+ const payload = jwt . verify ( token , process . env . TOKEN_SECRET ) ;
14+ const decryptedIP = util . decrypt ( payload . ip ) ;
15+ if ( decryptedIP !== req . ip ) {
16+ req . user = "unauthorized" ;
17+ next ( ) ;
18+ }
19+ req . user = JSON . stringify ( payload . data . uid ) ;
20+ req . userData = payload . data ;
21+ next ( ) ;
22+ return true ;
23+ } catch ( error ) {
24+ logger . error ( "Error while finding user " , error ) ;
25+ req . user = "unauthorized" ;
26+ next ( ) ;
27+ return false ;
28+ }
29+ }
Original file line number Diff line number Diff line change 11import express from "express" ;
22import authController from "#controller/auth" ;
3- import middleware from "#middleware/auth" ;
43
54const router = express . Router ( ) ;
65router . post ( "/" , authController . login ) ;
7- router . post ( "/validateUser" , middleware . authenticateToken , authController . validateUser ) ;
6+ router . post ( "/validateUser" , authController . validateUser ) ;
87router . post ( "/sendOTP" , authController . sendOTP ) ;
98router . post ( "/resetPassword" , authController . resetPassword ) ;
109
You can’t perform that action at this time.
0 commit comments