Skip to content

Commit b30f22c

Browse files
committed
fix: disable MfaGrace after logout
1 parent 1802dd8 commit b30f22c

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

index.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,17 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
5555
return { skipAllowed: false };
5656
}
5757

58-
private generateHashForStepUpMfaGraceCookie(headers): string {
58+
private generateHashForStepUpMfaGraceCookie(headers, cookies): string {
5959
const ip = this.adminforth.auth.getClientIp(headers);
6060
const userAgent = headers['user-agent'] || '';
6161
const acceptLanguage = headers['accept-language'] || '';
62-
if (!ip || !userAgent || !acceptLanguage) {
62+
const session_cookie = this.adminforth.auth.getCustomCookie({cookies: cookies, name: "jwt"});
63+
if (!ip || !userAgent || !acceptLanguage || !session_cookie) {
6364
console.error("❗️❗️❗️ Cannot set step-up MFA grace cookie: missing required request headers to identify client ❗️❗️❗️");
6465
return null;
6566
} else {
6667
const hmac = crypto.createHmac('sha256', process.env.ADMINFORTH_SECRET)
67-
.update(`${acceptLanguage}_${userAgent}_${ip}`)
68+
.update(`${acceptLanguage}_${userAgent}_${ip}_${session_cookie}`)
6869
.digest('hex');
6970
return hmac;
7071
}
@@ -73,7 +74,7 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
7374
private issueTempSkip2FAGraceJWT(opts): void {
7475
if (opts.response) {
7576
if (opts.extra.headers) {
76-
const hash = this.generateHashForStepUpMfaGraceCookie(opts.extra.headers);
77+
const hash = this.generateHashForStepUpMfaGraceCookie(opts.extra.headers, opts.cookies);
7778
if (!hash) {
7879
return;
7980
}
@@ -88,7 +89,7 @@ export default class TwoFactorsAuthPlugin extends AdminForthPlugin {
8889
}
8990

9091
private async isTempSkip2FAGraceValid(headers, cookies, checkIfJWTAboutToExpire: boolean = false): Promise<boolean> {
91-
const hash = this.generateHashForStepUpMfaGraceCookie(headers);
92+
const hash = this.generateHashForStepUpMfaGraceCookie(headers, cookies);
9293
if (!hash) {
9394
return false;
9495
}

0 commit comments

Comments
 (0)