1
1
import { Request , Response , NextFunction } from "express" ;
2
2
import { Session } from "express-session" ;
3
- import { generate2FACode } from "../services/2fa.service" ;
4
- import { verify2FACode } from "../services/2fa.service" ;
3
+ import { generate2FACode , verify2FACode } from "../services/2fa.service" ;
5
4
5
+ // Extend the Session interface
6
6
interface ExtendedSession extends Session {
7
7
email ?: string ;
8
8
password ?: string ;
@@ -11,14 +11,19 @@ interface ExtendedSession extends Session {
11
11
twoFAError ?: string ;
12
12
}
13
13
14
+ // Extend the Request interface
15
+ interface ExtendedRequest extends Request {
16
+ session : ExtendedSession ;
17
+ }
18
+
14
19
export const twoFAController = async (
15
- req : Request ,
20
+ req : ExtendedRequest ,
16
21
res : Response ,
17
22
next : NextFunction
18
23
) => {
19
24
const { email, password } = req . body ;
20
25
const twoFactorData = await generate2FACode ( req . body ) ;
21
- const extSession = req . session as ExtendedSession ;
26
+ const extSession = req . session ;
22
27
23
28
if ( twoFactorData ) {
24
29
extSession . twoFactorCode = twoFactorData . twoFactorCode ;
@@ -34,11 +39,11 @@ export const twoFAController = async (
34
39
} ;
35
40
36
41
export const verifyCode = async (
37
- req : Request ,
42
+ req : ExtendedRequest ,
38
43
res : Response ,
39
44
next : NextFunction
40
45
) => {
41
- const extendedSession = req . session as ExtendedSession ;
46
+ const extendedSession = req . session ;
42
47
const { code } = req . body ;
43
48
44
49
const sessionCode = extendedSession . twoFactorCode ;
0 commit comments