Skip to content

Commit 0f2e265

Browse files
feat(config): add frontend config for mfa otp expiration time
Because: * MFA OTP verification emails have a configurable expiration time. This commit: * adds frontend config for mfa otp expiration time Closes #FXA-12313
1 parent f567141 commit 0f2e265

4 files changed

Lines changed: 31 additions & 1 deletion

File tree

packages/fxa-content-server/server/config/local.json-dist

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@
5757
"recovery_codes": {
5858
"count": 3
5959
},
60+
"mfa": {
61+
"otp": {
62+
"expiresInMinutes": 5
63+
}
64+
},
6065
"showReactApp": {
6166
"simpleRoutes": true,
6267
"resetPasswordRoutes": true,

packages/fxa-content-server/server/lib/beta-settings.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ const settingsConfig = {
9090
count: config.get('recovery_codes.count'),
9191
length: config.get('recovery_codes.length'),
9292
},
93+
mfa: {
94+
otp: {
95+
expiresInMinutes: config.get('mfa.otp.expiresInMinutes'),
96+
},
97+
},
9398
googleAuthConfig: config.get('googleAuthConfig'),
9499
appleAuthConfig: config.get('appleAuthConfig'),
95100
brandMessagingMode: config.get('brandMessagingMode'),

packages/fxa-content-server/server/lib/configuration.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,16 @@ const conf = (module.exports = convict({
627627
format: 'url',
628628
},
629629
},
630+
mfa: {
631+
otp: {
632+
expiresInMinutes: {
633+
default: 5,
634+
doc: 'The number of minutes before the OTP for MFA expires',
635+
env: 'FXA_MFA_OTP_EXPIRES_IN_MINUTES',
636+
format: Number,
637+
},
638+
},
639+
},
630640
mxRecordValidation: {
631641
enabled: {
632642
default: true,

packages/fxa-settings/src/lib/config.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ export interface Config {
1313
baseUrl: string;
1414
};
1515
marketingEmailPreferencesUrl: string;
16+
mfa: {
17+
otp: {
18+
expiresInMinutes: number;
19+
};
20+
};
1621
metrics: {
1722
navTiming: {
1823
enabled: boolean;
@@ -116,6 +121,11 @@ export function getDefault() {
116121
metrics: {
117122
navTiming: { enabled: false, endpoint: '/check-your-metrics-config' },
118123
},
124+
mfa: {
125+
otp: {
126+
expiresInMinutes: 5,
127+
},
128+
},
119129
sentry: {
120130
dsn: '',
121131
env: 'local',
@@ -187,7 +197,7 @@ export function getDefault() {
187197
},
188198
cms: {
189199
enabled: false,
190-
l10nEnabled: false
200+
l10nEnabled: false,
191201
},
192202
nimbusPreview: false,
193203
} as Config;

0 commit comments

Comments
 (0)