@adminforth/two-factors-auth 4.3.3 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build.log
CHANGED
|
@@ -17,5 +17,5 @@ custom/tsconfig.json
|
|
|
17
17
|
custom/use2faApi.ts
|
|
18
18
|
custom/utils.js
|
|
19
19
|
|
|
20
|
-
sent 288,
|
|
21
|
-
total size is 287,
|
|
20
|
+
sent 288,117 bytes received 248 bytes 576,730.00 bytes/sec
|
|
21
|
+
total size is 287,144 speedup is 1.00
|
|
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import { convertPeriodToSeconds } from "adminforth";
|
|
10
11
|
import crypto from 'crypto';
|
|
11
12
|
const TOTP_TEMP_COOKIE = "2FaTemporaryJWT";
|
|
12
13
|
const PASSKEY_LOGIN_TEMP_COOKIE = "passkeyLoginTemporaryJWT";
|
|
@@ -36,11 +37,11 @@ export class CookieService {
|
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
39
|
setTotpTemporary(response, payload) {
|
|
39
|
-
|
|
40
|
-
const value = this.adminforth.auth.issueJWT(payload, 'temp2FA',
|
|
40
|
+
const period = this.options.totpSetupValidityPeriod || '1m';
|
|
41
|
+
const value = this.adminforth.auth.issueJWT(payload, 'temp2FA', period);
|
|
41
42
|
this.adminforth.auth.setCustomCookie({
|
|
42
43
|
response,
|
|
43
|
-
payload: { name: TOTP_TEMP_COOKIE, value, expiry: undefined, expirySeconds:
|
|
44
|
+
payload: { name: TOTP_TEMP_COOKIE, value, expiry: undefined, expirySeconds: convertPeriodToSeconds(period), httpOnly: true },
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
removeTotpTemporary(response) {
|
package/dist/types.d.ts
CHANGED
|
@@ -18,6 +18,12 @@ export interface PluginOptions extends PluginsCommonOptions {
|
|
|
18
18
|
* During this period, user will not be challenged with 2FA on sensitive actions.
|
|
19
19
|
*/
|
|
20
20
|
stepUpMfaGracePeriodSeconds?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Time the user has to complete 2FA setup / enter the OTP code before the temporary
|
|
23
|
+
* login session expires. Increase it if users don't have enough time to scan the QR
|
|
24
|
+
* code and enter the code. Default is '5m'.
|
|
25
|
+
*/
|
|
26
|
+
totpSetupValidityPeriod?: PeriodString;
|
|
21
27
|
customBrandPrefix?: string;
|
|
22
28
|
/**
|
|
23
29
|
* Passkeys (WebAuthn) configuration.
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IAdminForth, IAdminForthHttpResponse } from "adminforth";
|
|
2
|
+
import { convertPeriodToSeconds } from "adminforth";
|
|
2
3
|
import type { PluginOptions } from "../types.js";
|
|
3
4
|
import type { CookieList, HttpHeaders } from "../utils/types.js";
|
|
4
5
|
import crypto from 'crypto';
|
|
@@ -57,10 +58,11 @@ export class CookieService {
|
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
public setTotpTemporary(response: IAdminForthHttpResponse, payload: TotpTemporaryPayload): void {
|
|
60
|
-
const
|
|
61
|
+
const period = this.options.totpSetupValidityPeriod || '1m';
|
|
62
|
+
const value = this.adminforth.auth.issueJWT(payload, 'temp2FA', period);
|
|
61
63
|
this.adminforth.auth.setCustomCookie({
|
|
62
64
|
response,
|
|
63
|
-
payload: { name: TOTP_TEMP_COOKIE, value, expiry: undefined, expirySeconds:
|
|
65
|
+
payload: { name: TOTP_TEMP_COOKIE, value, expiry: undefined, expirySeconds: convertPeriodToSeconds(period), httpOnly: true },
|
|
64
66
|
});
|
|
65
67
|
}
|
|
66
68
|
|
package/types.ts
CHANGED
|
@@ -23,6 +23,13 @@ export interface PluginOptions extends PluginsCommonOptions {
|
|
|
23
23
|
*/
|
|
24
24
|
stepUpMfaGracePeriodSeconds?: number;
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Time the user has to complete 2FA setup / enter the OTP code before the temporary
|
|
28
|
+
* login session expires. Increase it if users don't have enough time to scan the QR
|
|
29
|
+
* code and enter the code. Default is '5m'.
|
|
30
|
+
*/
|
|
31
|
+
totpSetupValidityPeriod?: PeriodString; // e.g. '5m', '10m', '15m'. Default is '1m'
|
|
32
|
+
|
|
26
33
|
customBrandPrefix?: string;
|
|
27
34
|
|
|
28
35
|
/**
|