@aws-amplify/auth 6.10.2-unstable.ba025e5.0 → 6.10.2
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/dist/cjs/client/flows/shared/handlePasswordSRP.js +5 -3
- package/dist/cjs/client/flows/shared/handlePasswordSRP.js.map +1 -1
- package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPassword.js +2 -2
- package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPassword.js.map +1 -1
- package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.js +5 -3
- package/dist/cjs/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.js.map +1 -1
- package/dist/cjs/client/flows/userAuth/handleUserAuthFlow.js +2 -2
- package/dist/cjs/client/flows/userAuth/handleUserAuthFlow.js.map +1 -1
- package/dist/cjs/client/flows/userAuth/handleWebAuthnSignInResult.js +4 -4
- package/dist/cjs/client/flows/userAuth/handleWebAuthnSignInResult.js.map +1 -1
- package/dist/cjs/client/flows/userAuth/types.js +6 -0
- package/dist/cjs/client/flows/userAuth/types.js.map +1 -0
- package/dist/cjs/providers/cognito/apis/confirmSignIn.js +2 -1
- package/dist/cjs/providers/cognito/apis/confirmSignIn.js.map +1 -1
- package/dist/cjs/providers/cognito/apis/signInWithCustomAuth.js +4 -2
- package/dist/cjs/providers/cognito/apis/signInWithCustomAuth.js.map +1 -1
- package/dist/cjs/providers/cognito/apis/signInWithCustomSRPAuth.js +2 -1
- package/dist/cjs/providers/cognito/apis/signInWithCustomSRPAuth.js.map +1 -1
- package/dist/cjs/providers/cognito/apis/signInWithSRP.js +2 -1
- package/dist/cjs/providers/cognito/apis/signInWithSRP.js.map +1 -1
- package/dist/cjs/providers/cognito/apis/signInWithUserAuth.js +2 -1
- package/dist/cjs/providers/cognito/apis/signInWithUserAuth.js.map +1 -1
- package/dist/cjs/providers/cognito/apis/signInWithUserPassword.js +4 -2
- package/dist/cjs/providers/cognito/apis/signInWithUserPassword.js.map +1 -1
- package/dist/cjs/providers/cognito/utils/getNewDeviceMetadata.js +64 -0
- package/dist/cjs/providers/cognito/utils/getNewDeviceMetadata.js.map +1 -0
- package/dist/cjs/providers/cognito/utils/handleDeviceSRPAuth.js +88 -0
- package/dist/cjs/providers/cognito/utils/handleDeviceSRPAuth.js.map +1 -0
- package/dist/cjs/providers/cognito/utils/handlePasswordVerifierChallenge.js +79 -0
- package/dist/cjs/providers/cognito/utils/handlePasswordVerifierChallenge.js.map +1 -0
- package/dist/cjs/providers/cognito/utils/retryOnResourceNotFoundException.js +28 -0
- package/dist/cjs/providers/cognito/utils/retryOnResourceNotFoundException.js.map +1 -0
- package/dist/cjs/providers/cognito/utils/setActiveSignInUsername.js +13 -0
- package/dist/cjs/providers/cognito/utils/setActiveSignInUsername.js.map +1 -0
- package/dist/cjs/providers/cognito/utils/signInHelpers.js +23 -227
- package/dist/cjs/providers/cognito/utils/signInHelpers.js.map +1 -1
- package/dist/esm/client/flows/shared/handlePasswordSRP.mjs +3 -1
- package/dist/esm/client/flows/shared/handlePasswordSRP.mjs.map +1 -1
- package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPassword.mjs +1 -1
- package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPassword.mjs.map +1 -1
- package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.mjs +3 -1
- package/dist/esm/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.mjs.map +1 -1
- package/dist/esm/client/flows/userAuth/handleUserAuthFlow.mjs +1 -1
- package/dist/esm/client/flows/userAuth/handleUserAuthFlow.mjs.map +1 -1
- package/dist/esm/client/flows/userAuth/handleWebAuthnSignInResult.d.ts +2 -2
- package/dist/esm/client/flows/userAuth/handleWebAuthnSignInResult.mjs +3 -3
- package/dist/esm/client/flows/userAuth/handleWebAuthnSignInResult.mjs.map +1 -1
- package/dist/esm/client/flows/userAuth/types.d.ts +6 -0
- package/dist/esm/client/flows/userAuth/types.mjs +2 -0
- package/dist/esm/client/flows/userAuth/types.mjs.map +1 -0
- package/dist/esm/providers/cognito/apis/confirmSignIn.mjs +2 -1
- package/dist/esm/providers/cognito/apis/confirmSignIn.mjs.map +1 -1
- package/dist/esm/providers/cognito/apis/signInWithCustomAuth.mjs +3 -1
- package/dist/esm/providers/cognito/apis/signInWithCustomAuth.mjs.map +1 -1
- package/dist/esm/providers/cognito/apis/signInWithCustomSRPAuth.mjs +2 -1
- package/dist/esm/providers/cognito/apis/signInWithCustomSRPAuth.mjs.map +1 -1
- package/dist/esm/providers/cognito/apis/signInWithSRP.mjs +2 -1
- package/dist/esm/providers/cognito/apis/signInWithSRP.mjs.map +1 -1
- package/dist/esm/providers/cognito/apis/signInWithUserAuth.mjs +2 -1
- package/dist/esm/providers/cognito/apis/signInWithUserAuth.mjs.map +1 -1
- package/dist/esm/providers/cognito/apis/signInWithUserPassword.mjs +3 -1
- package/dist/esm/providers/cognito/apis/signInWithUserPassword.mjs.map +1 -1
- package/dist/esm/providers/cognito/utils/getNewDeviceMetadata.d.ts +17 -0
- package/dist/esm/providers/cognito/utils/getNewDeviceMetadata.mjs +71 -0
- package/dist/esm/providers/cognito/utils/getNewDeviceMetadata.mjs.map +1 -0
- package/dist/esm/providers/cognito/utils/handleDeviceSRPAuth.d.ts +13 -0
- package/dist/esm/providers/cognito/utils/handleDeviceSRPAuth.mjs +97 -0
- package/dist/esm/providers/cognito/utils/handleDeviceSRPAuth.mjs.map +1 -0
- package/dist/esm/providers/cognito/utils/handlePasswordVerifierChallenge.d.ts +6 -0
- package/dist/esm/providers/cognito/utils/handlePasswordVerifierChallenge.mjs +88 -0
- package/dist/esm/providers/cognito/utils/handlePasswordVerifierChallenge.mjs.map +1 -0
- package/dist/esm/providers/cognito/utils/retryOnResourceNotFoundException.d.ts +7 -0
- package/dist/esm/providers/cognito/utils/retryOnResourceNotFoundException.mjs +26 -0
- package/dist/esm/providers/cognito/utils/retryOnResourceNotFoundException.mjs.map +1 -0
- package/dist/esm/providers/cognito/utils/setActiveSignInUsername.d.ts +1 -0
- package/dist/esm/providers/cognito/utils/setActiveSignInUsername.mjs +12 -0
- package/dist/esm/providers/cognito/utils/setActiveSignInUsername.mjs.map +1 -0
- package/dist/esm/providers/cognito/utils/signInHelpers.d.ts +2 -26
- package/dist/esm/providers/cognito/utils/signInHelpers.mjs +18 -220
- package/dist/esm/providers/cognito/utils/signInHelpers.mjs.map +1 -1
- package/package.json +106 -106
- package/src/client/flows/shared/handlePasswordSRP.ts +3 -5
- package/src/client/flows/userAuth/handleSelectChallengeWithPassword.ts +1 -1
- package/src/client/flows/userAuth/handleSelectChallengeWithPasswordSRP.ts +3 -5
- package/src/client/flows/userAuth/handleUserAuthFlow.ts +1 -1
- package/src/client/flows/userAuth/handleWebAuthnSignInResult.ts +6 -8
- package/src/client/flows/userAuth/types.ts +15 -0
- package/src/providers/cognito/apis/confirmSignIn.ts +1 -1
- package/src/providers/cognito/apis/signInWithCustomAuth.ts +2 -2
- package/src/providers/cognito/apis/signInWithCustomSRPAuth.ts +1 -1
- package/src/providers/cognito/apis/signInWithSRP.ts +1 -1
- package/src/providers/cognito/apis/signInWithUserAuth.ts +1 -1
- package/src/providers/cognito/apis/signInWithUserPassword.ts +2 -2
- package/src/providers/cognito/utils/getNewDeviceMetadata.ts +88 -0
- package/src/providers/cognito/utils/handleDeviceSRPAuth.ts +146 -0
- package/src/providers/cognito/utils/handlePasswordVerifierChallenge.ts +106 -0
- package/src/providers/cognito/utils/retryOnResourceNotFoundException.ts +34 -0
- package/src/providers/cognito/utils/setActiveSignInUsername.ts +10 -0
- package/src/providers/cognito/utils/signInHelpers.ts +19 -327
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
4
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleMFAChallenge = exports.getActiveSignInUsername = exports.
|
|
6
|
+
exports.handleMFAChallenge = exports.getActiveSignInUsername = exports.assertUserNotAuthenticated = exports.getAllowedMfaSetupTypes = exports.parseMFATypes = exports.getMFATypes = exports.getMFAType = exports.mapMfaType = exports.handleChallengeName = exports.createAttributes = exports.parseAttributes = exports.getSignInResultFromError = exports.getTOTPSetupDetails = exports.getSignInResult = exports.handleCustomSRPAuthFlow = exports.handleCustomAuthFlowWithoutSRP = exports.handleUserSRPAuthFlow = exports.handleUserPasswordAuthFlow = exports.handleCompleteNewPasswordChallenge = exports.handleSelectMFATypeChallenge = exports.handleMFASetupChallenge = exports.handleCustomChallenge = void 0;
|
|
7
7
|
const core_1 = require("@aws-amplify/core");
|
|
8
8
|
const utils_1 = require("@aws-amplify/core/internals/utils");
|
|
9
9
|
const AuthError_1 = require("../../../errors/AuthError");
|
|
@@ -23,11 +23,16 @@ const handleSelectChallenge_1 = require("../../../client/flows/userAuth/handleSe
|
|
|
23
23
|
const handleSelectChallengeWithPassword_1 = require("../../../client/flows/userAuth/handleSelectChallengeWithPassword");
|
|
24
24
|
const handleSelectChallengeWithPasswordSRP_1 = require("../../../client/flows/userAuth/handleSelectChallengeWithPasswordSRP");
|
|
25
25
|
const store_1 = require("../../../client/utils/store");
|
|
26
|
-
const types_1 = require("./types");
|
|
27
26
|
const srp_1 = require("./srp");
|
|
28
|
-
const BigInteger_1 = require("./srp/BigInteger");
|
|
29
27
|
const userContextData_1 = require("./userContextData");
|
|
28
|
+
const handlePasswordVerifierChallenge_1 = require("./handlePasswordVerifierChallenge");
|
|
29
|
+
const handleDeviceSRPAuth_1 = require("./handleDeviceSRPAuth");
|
|
30
|
+
const retryOnResourceNotFoundException_1 = require("./retryOnResourceNotFoundException");
|
|
31
|
+
const setActiveSignInUsername_1 = require("./setActiveSignInUsername");
|
|
30
32
|
const USER_ATTRIBUTES = 'userAttributes.';
|
|
33
|
+
function isWebAuthnResultAuthSignInOutput(result) {
|
|
34
|
+
return 'isSignedIn' in result && 'nextStep' in result;
|
|
35
|
+
}
|
|
31
36
|
async function handleCustomChallenge({ challengeResponse, clientMetadata, session, username, config, tokenOrchestrator, }) {
|
|
32
37
|
const { userPoolId, userPoolClientId, userPoolEndpoint } = config;
|
|
33
38
|
const challengeResponses = {
|
|
@@ -61,7 +66,7 @@ async function handleCustomChallenge({ challengeResponse, clientMetadata, sessio
|
|
|
61
66
|
userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),
|
|
62
67
|
}, jsonReq);
|
|
63
68
|
if (response.ChallengeName === 'DEVICE_SRP_AUTH') {
|
|
64
|
-
return handleDeviceSRPAuth({
|
|
69
|
+
return (0, handleDeviceSRPAuth_1.handleDeviceSRPAuth)({
|
|
65
70
|
username,
|
|
66
71
|
config,
|
|
67
72
|
clientMetadata,
|
|
@@ -258,9 +263,9 @@ async function handleUserPasswordAuthFlow(username, password, clientMetadata, co
|
|
|
258
263
|
const activeUsername = response.ChallengeParameters?.USERNAME ??
|
|
259
264
|
response.ChallengeParameters?.USER_ID_FOR_SRP ??
|
|
260
265
|
username;
|
|
261
|
-
setActiveSignInUsername(activeUsername);
|
|
266
|
+
(0, setActiveSignInUsername_1.setActiveSignInUsername)(activeUsername);
|
|
262
267
|
if (response.ChallengeName === 'DEVICE_SRP_AUTH')
|
|
263
|
-
return handleDeviceSRPAuth({
|
|
268
|
+
return (0, handleDeviceSRPAuth_1.handleDeviceSRPAuth)({
|
|
264
269
|
username: activeUsername,
|
|
265
270
|
config,
|
|
266
271
|
clientMetadata,
|
|
@@ -312,9 +317,9 @@ async function handleCustomAuthFlowWithoutSRP(username, clientMetadata, config,
|
|
|
312
317
|
userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),
|
|
313
318
|
}, jsonReq);
|
|
314
319
|
const activeUsername = response.ChallengeParameters?.USERNAME ?? username;
|
|
315
|
-
setActiveSignInUsername(activeUsername);
|
|
320
|
+
(0, setActiveSignInUsername_1.setActiveSignInUsername)(activeUsername);
|
|
316
321
|
if (response.ChallengeName === 'DEVICE_SRP_AUTH')
|
|
317
|
-
return handleDeviceSRPAuth({
|
|
322
|
+
return (0, handleDeviceSRPAuth_1.handleDeviceSRPAuth)({
|
|
318
323
|
username: activeUsername,
|
|
319
324
|
config,
|
|
320
325
|
clientMetadata,
|
|
@@ -356,8 +361,8 @@ async function handleCustomSRPAuthFlow(username, password, clientMetadata, confi
|
|
|
356
361
|
userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),
|
|
357
362
|
}, jsonReq);
|
|
358
363
|
const activeUsername = challengeParameters?.USERNAME ?? username;
|
|
359
|
-
setActiveSignInUsername(activeUsername);
|
|
360
|
-
return retryOnResourceNotFoundException(handlePasswordVerifierChallenge, [
|
|
364
|
+
(0, setActiveSignInUsername_1.setActiveSignInUsername)(activeUsername);
|
|
365
|
+
return (0, retryOnResourceNotFoundException_1.retryOnResourceNotFoundException)(handlePasswordVerifierChallenge_1.handlePasswordVerifierChallenge, [
|
|
361
366
|
password,
|
|
362
367
|
challengeParameters,
|
|
363
368
|
clientMetadata,
|
|
@@ -368,143 +373,6 @@ async function handleCustomSRPAuthFlow(username, password, clientMetadata, confi
|
|
|
368
373
|
], activeUsername, tokenOrchestrator);
|
|
369
374
|
}
|
|
370
375
|
exports.handleCustomSRPAuthFlow = handleCustomSRPAuthFlow;
|
|
371
|
-
async function handleDeviceSRPAuth({ username, config, clientMetadata, session, tokenOrchestrator, }) {
|
|
372
|
-
const { userPoolId, userPoolEndpoint } = config;
|
|
373
|
-
const clientId = config.userPoolClientId;
|
|
374
|
-
const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);
|
|
375
|
-
(0, types_1.assertDeviceMetadata)(deviceMetadata);
|
|
376
|
-
const authenticationHelper = await (0, srp_1.getAuthenticationHelper)(deviceMetadata.deviceGroupKey);
|
|
377
|
-
const challengeResponses = {
|
|
378
|
-
USERNAME: username,
|
|
379
|
-
SRP_A: authenticationHelper.A.toString(16),
|
|
380
|
-
DEVICE_KEY: deviceMetadata.deviceKey,
|
|
381
|
-
};
|
|
382
|
-
const jsonReqResponseChallenge = {
|
|
383
|
-
ChallengeName: 'DEVICE_SRP_AUTH',
|
|
384
|
-
ClientId: clientId,
|
|
385
|
-
ChallengeResponses: challengeResponses,
|
|
386
|
-
ClientMetadata: clientMetadata,
|
|
387
|
-
Session: session,
|
|
388
|
-
};
|
|
389
|
-
const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({
|
|
390
|
-
endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({
|
|
391
|
-
endpointOverride: userPoolEndpoint,
|
|
392
|
-
}),
|
|
393
|
-
});
|
|
394
|
-
const { ChallengeParameters: respondedChallengeParameters, Session } = await respondToAuthChallenge({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, jsonReqResponseChallenge);
|
|
395
|
-
return handleDevicePasswordVerifier(username, respondedChallengeParameters, clientMetadata, Session, authenticationHelper, config, tokenOrchestrator);
|
|
396
|
-
}
|
|
397
|
-
async function handleDevicePasswordVerifier(username, challengeParameters, clientMetadata, session, authenticationHelper, { userPoolId, userPoolClientId, userPoolEndpoint }, tokenOrchestrator) {
|
|
398
|
-
const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);
|
|
399
|
-
(0, types_1.assertDeviceMetadata)(deviceMetadata);
|
|
400
|
-
const serverBValue = new BigInteger_1.BigInteger(challengeParameters?.SRP_B, 16);
|
|
401
|
-
const salt = new BigInteger_1.BigInteger(challengeParameters?.SALT, 16);
|
|
402
|
-
const { deviceKey } = deviceMetadata;
|
|
403
|
-
const { deviceGroupKey } = deviceMetadata;
|
|
404
|
-
const hkdf = await authenticationHelper.getPasswordAuthenticationKey({
|
|
405
|
-
username: deviceMetadata.deviceKey,
|
|
406
|
-
password: deviceMetadata.randomPassword,
|
|
407
|
-
serverBValue,
|
|
408
|
-
salt,
|
|
409
|
-
});
|
|
410
|
-
const dateNow = (0, srp_1.getNowString)();
|
|
411
|
-
const challengeResponses = {
|
|
412
|
-
USERNAME: challengeParameters?.USERNAME ?? username,
|
|
413
|
-
PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,
|
|
414
|
-
TIMESTAMP: dateNow,
|
|
415
|
-
PASSWORD_CLAIM_SIGNATURE: (0, srp_1.getSignatureString)({
|
|
416
|
-
username: deviceKey,
|
|
417
|
-
userPoolName: deviceGroupKey,
|
|
418
|
-
challengeParameters,
|
|
419
|
-
dateNow,
|
|
420
|
-
hkdf,
|
|
421
|
-
}),
|
|
422
|
-
DEVICE_KEY: deviceKey,
|
|
423
|
-
};
|
|
424
|
-
const UserContextData = (0, userContextData_1.getUserContextData)({
|
|
425
|
-
username,
|
|
426
|
-
userPoolId,
|
|
427
|
-
userPoolClientId,
|
|
428
|
-
});
|
|
429
|
-
const jsonReqResponseChallenge = {
|
|
430
|
-
ChallengeName: 'DEVICE_PASSWORD_VERIFIER',
|
|
431
|
-
ClientId: userPoolClientId,
|
|
432
|
-
ChallengeResponses: challengeResponses,
|
|
433
|
-
Session: session,
|
|
434
|
-
ClientMetadata: clientMetadata,
|
|
435
|
-
UserContextData,
|
|
436
|
-
};
|
|
437
|
-
const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({
|
|
438
|
-
endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({
|
|
439
|
-
endpointOverride: userPoolEndpoint,
|
|
440
|
-
}),
|
|
441
|
-
});
|
|
442
|
-
return respondToAuthChallenge({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, jsonReqResponseChallenge);
|
|
443
|
-
}
|
|
444
|
-
async function handlePasswordVerifierChallenge(password, challengeParameters, clientMetadata, session, authenticationHelper, config, tokenOrchestrator) {
|
|
445
|
-
const { userPoolId, userPoolClientId, userPoolEndpoint } = config;
|
|
446
|
-
const userPoolName = userPoolId?.split('_')[1] || '';
|
|
447
|
-
const serverBValue = new BigInteger_1.BigInteger(challengeParameters?.SRP_B, 16);
|
|
448
|
-
const salt = new BigInteger_1.BigInteger(challengeParameters?.SALT, 16);
|
|
449
|
-
const username = challengeParameters?.USER_ID_FOR_SRP;
|
|
450
|
-
if (!username)
|
|
451
|
-
throw new AuthError_1.AuthError({
|
|
452
|
-
name: 'EmptyUserIdForSRPException',
|
|
453
|
-
message: 'USER_ID_FOR_SRP was not found in challengeParameters',
|
|
454
|
-
});
|
|
455
|
-
const hkdf = await authenticationHelper.getPasswordAuthenticationKey({
|
|
456
|
-
username,
|
|
457
|
-
password,
|
|
458
|
-
serverBValue,
|
|
459
|
-
salt,
|
|
460
|
-
});
|
|
461
|
-
const dateNow = (0, srp_1.getNowString)();
|
|
462
|
-
const challengeResponses = {
|
|
463
|
-
USERNAME: username,
|
|
464
|
-
PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,
|
|
465
|
-
TIMESTAMP: dateNow,
|
|
466
|
-
PASSWORD_CLAIM_SIGNATURE: (0, srp_1.getSignatureString)({
|
|
467
|
-
username,
|
|
468
|
-
userPoolName,
|
|
469
|
-
challengeParameters,
|
|
470
|
-
dateNow,
|
|
471
|
-
hkdf,
|
|
472
|
-
}),
|
|
473
|
-
};
|
|
474
|
-
const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);
|
|
475
|
-
if (deviceMetadata && deviceMetadata.deviceKey) {
|
|
476
|
-
challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;
|
|
477
|
-
}
|
|
478
|
-
const UserContextData = (0, userContextData_1.getUserContextData)({
|
|
479
|
-
username,
|
|
480
|
-
userPoolId,
|
|
481
|
-
userPoolClientId,
|
|
482
|
-
});
|
|
483
|
-
const jsonReqResponseChallenge = {
|
|
484
|
-
ChallengeName: 'PASSWORD_VERIFIER',
|
|
485
|
-
ChallengeResponses: challengeResponses,
|
|
486
|
-
ClientMetadata: clientMetadata,
|
|
487
|
-
Session: session,
|
|
488
|
-
ClientId: userPoolClientId,
|
|
489
|
-
UserContextData,
|
|
490
|
-
};
|
|
491
|
-
const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({
|
|
492
|
-
endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({
|
|
493
|
-
endpointOverride: userPoolEndpoint,
|
|
494
|
-
}),
|
|
495
|
-
});
|
|
496
|
-
const response = await respondToAuthChallenge({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, jsonReqResponseChallenge);
|
|
497
|
-
if (response.ChallengeName === 'DEVICE_SRP_AUTH')
|
|
498
|
-
return handleDeviceSRPAuth({
|
|
499
|
-
username,
|
|
500
|
-
config,
|
|
501
|
-
clientMetadata,
|
|
502
|
-
session: response.Session,
|
|
503
|
-
tokenOrchestrator,
|
|
504
|
-
});
|
|
505
|
-
return response;
|
|
506
|
-
}
|
|
507
|
-
exports.handlePasswordVerifierChallenge = handlePasswordVerifierChallenge;
|
|
508
376
|
async function getSignInResult(params) {
|
|
509
377
|
const { challengeName, challengeParameters, availableChallenges } = params;
|
|
510
378
|
const authConfig = core_1.Amplify.getConfig().Auth?.Cognito;
|
|
@@ -613,8 +481,13 @@ async function getSignInResult(params) {
|
|
|
613
481
|
},
|
|
614
482
|
},
|
|
615
483
|
};
|
|
616
|
-
case 'WEB_AUTHN':
|
|
617
|
-
|
|
484
|
+
case 'WEB_AUTHN': {
|
|
485
|
+
const result = await (0, handleWebAuthnSignInResult_1.handleWebAuthnSignInResult)(challengeParameters);
|
|
486
|
+
if (isWebAuthnResultAuthSignInOutput(result)) {
|
|
487
|
+
return result;
|
|
488
|
+
}
|
|
489
|
+
return getSignInResult(result);
|
|
490
|
+
}
|
|
618
491
|
case 'PASSWORD':
|
|
619
492
|
case 'PASSWORD_SRP':
|
|
620
493
|
return {
|
|
@@ -731,7 +604,7 @@ async function handleChallengeName(username, challengeName, session, challengeRe
|
|
|
731
604
|
config,
|
|
732
605
|
});
|
|
733
606
|
case 'CUSTOM_CHALLENGE':
|
|
734
|
-
return retryOnResourceNotFoundException(handleCustomChallenge, [
|
|
607
|
+
return (0, retryOnResourceNotFoundException_1.retryOnResourceNotFoundException)(handleCustomChallenge, [
|
|
735
608
|
{
|
|
736
609
|
challengeResponse,
|
|
737
610
|
clientMetadata,
|
|
@@ -817,83 +690,6 @@ async function assertUserNotAuthenticated() {
|
|
|
817
690
|
}
|
|
818
691
|
}
|
|
819
692
|
exports.assertUserNotAuthenticated = assertUserNotAuthenticated;
|
|
820
|
-
/**
|
|
821
|
-
* This function is used to kick off the device management flow.
|
|
822
|
-
*
|
|
823
|
-
* If an error is thrown while generating a hash device or calling the `ConfirmDevice`
|
|
824
|
-
* client, then this API will ignore the error and return undefined. Otherwise the authentication
|
|
825
|
-
* flow will not complete and the user won't be able to be signed in.
|
|
826
|
-
*
|
|
827
|
-
* @returns DeviceMetadata | undefined
|
|
828
|
-
*/
|
|
829
|
-
async function getNewDeviceMetadata({ userPoolId, userPoolEndpoint, newDeviceMetadata, accessToken, }) {
|
|
830
|
-
if (!newDeviceMetadata)
|
|
831
|
-
return undefined;
|
|
832
|
-
const userPoolName = userPoolId.split('_')[1] || '';
|
|
833
|
-
const authenticationHelper = await (0, srp_1.getAuthenticationHelper)(userPoolName);
|
|
834
|
-
const deviceKey = newDeviceMetadata?.DeviceKey;
|
|
835
|
-
const deviceGroupKey = newDeviceMetadata?.DeviceGroupKey;
|
|
836
|
-
try {
|
|
837
|
-
await authenticationHelper.generateHashDevice(deviceGroupKey ?? '', deviceKey ?? '');
|
|
838
|
-
}
|
|
839
|
-
catch (errGenHash) {
|
|
840
|
-
// TODO: log error here
|
|
841
|
-
return undefined;
|
|
842
|
-
}
|
|
843
|
-
const deviceSecretVerifierConfig = {
|
|
844
|
-
Salt: utils_1.base64Encoder.convert((0, srp_1.getBytesFromHex)(authenticationHelper.getSaltToHashDevices())),
|
|
845
|
-
PasswordVerifier: utils_1.base64Encoder.convert((0, srp_1.getBytesFromHex)(authenticationHelper.getVerifierDevices())),
|
|
846
|
-
};
|
|
847
|
-
const randomPassword = authenticationHelper.getRandomPassword();
|
|
848
|
-
try {
|
|
849
|
-
const confirmDevice = (0, cognitoIdentityProvider_1.createConfirmDeviceClient)({
|
|
850
|
-
endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({
|
|
851
|
-
endpointOverride: userPoolEndpoint,
|
|
852
|
-
}),
|
|
853
|
-
});
|
|
854
|
-
await confirmDevice({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, {
|
|
855
|
-
AccessToken: accessToken,
|
|
856
|
-
DeviceName: await (0, utils_1.getDeviceName)(),
|
|
857
|
-
DeviceKey: newDeviceMetadata?.DeviceKey,
|
|
858
|
-
DeviceSecretVerifierConfig: deviceSecretVerifierConfig,
|
|
859
|
-
});
|
|
860
|
-
return {
|
|
861
|
-
deviceKey,
|
|
862
|
-
deviceGroupKey,
|
|
863
|
-
randomPassword,
|
|
864
|
-
};
|
|
865
|
-
}
|
|
866
|
-
catch (error) {
|
|
867
|
-
// TODO: log error here
|
|
868
|
-
return undefined;
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
exports.getNewDeviceMetadata = getNewDeviceMetadata;
|
|
872
|
-
/**
|
|
873
|
-
* It will retry the function if the error is a `ResourceNotFoundException` and
|
|
874
|
-
* will clean the device keys stored in the storage mechanism.
|
|
875
|
-
*
|
|
876
|
-
*/
|
|
877
|
-
async function retryOnResourceNotFoundException(func, args, username, tokenOrchestrator) {
|
|
878
|
-
try {
|
|
879
|
-
return await func(...args);
|
|
880
|
-
}
|
|
881
|
-
catch (error) {
|
|
882
|
-
if (error instanceof AuthError_1.AuthError &&
|
|
883
|
-
error.name === 'ResourceNotFoundException' &&
|
|
884
|
-
error.message.includes('Device does not exist.')) {
|
|
885
|
-
await tokenOrchestrator.clearDeviceMetadata(username);
|
|
886
|
-
return func(...args);
|
|
887
|
-
}
|
|
888
|
-
throw error;
|
|
889
|
-
}
|
|
890
|
-
}
|
|
891
|
-
exports.retryOnResourceNotFoundException = retryOnResourceNotFoundException;
|
|
892
|
-
function setActiveSignInUsername(username) {
|
|
893
|
-
const { dispatch } = store_1.signInStore;
|
|
894
|
-
dispatch({ type: 'SET_USERNAME', value: username });
|
|
895
|
-
}
|
|
896
|
-
exports.setActiveSignInUsername = setActiveSignInUsername;
|
|
897
693
|
function getActiveSignInUsername(username) {
|
|
898
694
|
const state = store_1.signInStore.getState();
|
|
899
695
|
return state.username ?? username;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signInHelpers.js","sources":["../../../../../src/providers/cognito/utils/signInHelpers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleMFAChallenge = exports.getActiveSignInUsername = exports.setActiveSignInUsername = exports.retryOnResourceNotFoundException = exports.getNewDeviceMetadata = exports.assertUserNotAuthenticated = exports.getAllowedMfaSetupTypes = exports.parseMFATypes = exports.getMFATypes = exports.getMFAType = exports.mapMfaType = exports.handleChallengeName = exports.createAttributes = exports.parseAttributes = exports.getSignInResultFromError = exports.getTOTPSetupDetails = exports.getSignInResult = exports.handlePasswordVerifierChallenge = exports.handleCustomSRPAuthFlow = exports.handleCustomAuthFlowWithoutSRP = exports.handleUserSRPAuthFlow = exports.handleUserPasswordAuthFlow = exports.handleCompleteNewPasswordChallenge = exports.handleSelectMFATypeChallenge = exports.handleMFASetupChallenge = exports.handleCustomChallenge = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst AuthError_1 = require(\"../../../errors/AuthError\");\nconst errors_1 = require(\"../types/errors\");\nconst AuthErrorStrings_1 = require(\"../../../common/AuthErrorStrings\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst constants_1 = require(\"../../../errors/constants\");\nconst getCurrentUser_1 = require(\"../apis/getCurrentUser\");\nconst utils_2 = require(\"../../../utils\");\nconst cognitoIdentityProvider_1 = require(\"../../../foundation/factories/serviceClients/cognitoIdentityProvider\");\nconst factories_1 = require(\"../factories\");\nconst parsers_1 = require(\"../../../foundation/parsers\");\nconst handleWebAuthnSignInResult_1 = require(\"../../../client/flows/userAuth/handleWebAuthnSignInResult\");\nconst handlePasswordSRP_1 = require(\"../../../client/flows/shared/handlePasswordSRP\");\nconst handleSelectChallenge_1 = require(\"../../../client/flows/userAuth/handleSelectChallenge\");\nconst handleSelectChallengeWithPassword_1 = require(\"../../../client/flows/userAuth/handleSelectChallengeWithPassword\");\nconst handleSelectChallengeWithPasswordSRP_1 = require(\"../../../client/flows/userAuth/handleSelectChallengeWithPasswordSRP\");\nconst store_1 = require(\"../../../client/utils/store\");\nconst types_1 = require(\"./types\");\nconst srp_1 = require(\"./srp\");\nconst BigInteger_1 = require(\"./srp/BigInteger\");\nconst userContextData_1 = require(\"./userContextData\");\nconst USER_ATTRIBUTES = 'userAttributes.';\nasync function handleCustomChallenge({ challengeResponse, clientMetadata, session, username, config, tokenOrchestrator, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const challengeResponses = {\n USERNAME: username,\n ANSWER: challengeResponse,\n };\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH') {\n return handleDeviceSRPAuth({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n }\n return response;\n}\nexports.handleCustomChallenge = handleCustomChallenge;\nasync function handleMFASetupChallenge({ challengeResponse, username, clientMetadata, session, deviceName, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n if (challengeResponse === 'EMAIL') {\n return {\n ChallengeName: 'MFA_SETUP',\n Session: session,\n ChallengeParameters: {\n MFAS_CAN_SETUP: '[\"EMAIL_OTP\"]',\n },\n $metadata: {},\n };\n }\n if (challengeResponse === 'TOTP') {\n return {\n ChallengeName: 'MFA_SETUP',\n Session: session,\n ChallengeParameters: {\n MFAS_CAN_SETUP: '[\"SOFTWARE_TOKEN_MFA\"]',\n },\n $metadata: {},\n };\n }\n const challengeResponses = {\n USERNAME: username,\n };\n const isTOTPCode = /^\\d+$/.test(challengeResponse);\n if (isTOTPCode) {\n const verifySoftwareToken = (0, cognitoIdentityProvider_1.createVerifySoftwareTokenClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const { Session } = await verifySoftwareToken({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, {\n UserCode: challengeResponse,\n Session: session,\n FriendlyDeviceName: deviceName,\n });\n store_1.signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n const jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ChallengeResponses: challengeResponses,\n Session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n }\n const isEmail = challengeResponse.includes('@');\n if (isEmail) {\n challengeResponses.EMAIL = challengeResponse;\n const jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n }\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: `Cannot proceed with MFA setup using challengeResponse: ${challengeResponse}`,\n recoverySuggestion: 'Try passing \"EMAIL\", \"TOTP\", a valid email, or OTP code as the challengeResponse.',\n });\n}\nexports.handleMFASetupChallenge = handleMFASetupChallenge;\nasync function handleSelectMFATypeChallenge({ challengeResponse, username, clientMetadata, session, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n (0, assertValidationError_1.assertValidationError)(challengeResponse === 'TOTP' ||\n challengeResponse === 'SMS' ||\n challengeResponse === 'EMAIL', validation_1.AuthValidationErrorCode.IncorrectMFAMethod);\n const challengeResponses = {\n USERNAME: username,\n ANSWER: mapMfaType(challengeResponse),\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexports.handleSelectMFATypeChallenge = handleSelectMFATypeChallenge;\nasync function handleCompleteNewPasswordChallenge({ challengeResponse, clientMetadata, session, username, requiredAttributes, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const challengeResponses = {\n ...createAttributes(requiredAttributes),\n NEW_PASSWORD: challengeResponse,\n USERNAME: username,\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexports.handleCompleteNewPasswordChallenge = handleCompleteNewPasswordChallenge;\nasync function handleUserPasswordAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId, userPoolEndpoint } = config;\n const authParameters = {\n USERNAME: username,\n PASSWORD: password,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const initiateAuth = (0, cognitoIdentityProvider_1.createInitiateAuthClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await initiateAuth({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ??\n response.ChallengeParameters?.USER_ID_FOR_SRP ??\n username;\n setActiveSignInUsername(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexports.handleUserPasswordAuthFlow = handleUserPasswordAuthFlow;\nasync function handleUserSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n return (0, handlePasswordSRP_1.handlePasswordSRP)({\n username,\n password,\n clientMetadata,\n config,\n tokenOrchestrator,\n authFlow: 'USER_SRP_AUTH',\n });\n}\nexports.handleUserSRPAuthFlow = handleUserSRPAuthFlow;\nasync function handleCustomAuthFlowWithoutSRP(username, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId, userPoolEndpoint } = config;\n const authParameters = {\n USERNAME: username,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const initiateAuth = (0, cognitoIdentityProvider_1.createInitiateAuthClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await initiateAuth({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexports.handleCustomAuthFlowWithoutSRP = handleCustomAuthFlowWithoutSRP;\nasync function handleCustomSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n (0, utils_1.assertTokenProviderConfig)(config);\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const authenticationHelper = await (0, srp_1.getAuthenticationHelper)(userPoolName);\n const authParameters = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n CHALLENGE_NAME: 'SRP_A',\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const initiateAuth = (0, cognitoIdentityProvider_1.createInitiateAuthClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const { ChallengeParameters: challengeParameters, Session: session } = await initiateAuth({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = challengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n return retryOnResourceNotFoundException(handlePasswordVerifierChallenge, [\n password,\n challengeParameters,\n clientMetadata,\n session,\n authenticationHelper,\n config,\n tokenOrchestrator,\n ], activeUsername, tokenOrchestrator);\n}\nexports.handleCustomSRPAuthFlow = handleCustomSRPAuthFlow;\nasync function handleDeviceSRPAuth({ username, config, clientMetadata, session, tokenOrchestrator, }) {\n const { userPoolId, userPoolEndpoint } = config;\n const clientId = config.userPoolClientId;\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n (0, types_1.assertDeviceMetadata)(deviceMetadata);\n const authenticationHelper = await (0, srp_1.getAuthenticationHelper)(deviceMetadata.deviceGroupKey);\n const challengeResponses = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n DEVICE_KEY: deviceMetadata.deviceKey,\n };\n const jsonReqResponseChallenge = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: clientId,\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const { ChallengeParameters: respondedChallengeParameters, Session } = await respondToAuthChallenge({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, jsonReqResponseChallenge);\n return handleDevicePasswordVerifier(username, respondedChallengeParameters, clientMetadata, Session, authenticationHelper, config, tokenOrchestrator);\n}\nasync function handleDevicePasswordVerifier(username, challengeParameters, clientMetadata, session, authenticationHelper, { userPoolId, userPoolClientId, userPoolEndpoint }, tokenOrchestrator) {\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n (0, types_1.assertDeviceMetadata)(deviceMetadata);\n const serverBValue = new BigInteger_1.BigInteger(challengeParameters?.SRP_B, 16);\n const salt = new BigInteger_1.BigInteger(challengeParameters?.SALT, 16);\n const { deviceKey } = deviceMetadata;\n const { deviceGroupKey } = deviceMetadata;\n const hkdf = await authenticationHelper.getPasswordAuthenticationKey({\n username: deviceMetadata.deviceKey,\n password: deviceMetadata.randomPassword,\n serverBValue,\n salt,\n });\n const dateNow = (0, srp_1.getNowString)();\n const challengeResponses = {\n USERNAME: challengeParameters?.USERNAME ?? username,\n PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,\n TIMESTAMP: dateNow,\n PASSWORD_CLAIM_SIGNATURE: (0, srp_1.getSignatureString)({\n username: deviceKey,\n userPoolName: deviceGroupKey,\n challengeParameters,\n dateNow,\n hkdf,\n }),\n DEVICE_KEY: deviceKey,\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReqResponseChallenge = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: userPoolClientId,\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, jsonReqResponseChallenge);\n}\nasync function handlePasswordVerifierChallenge(password, challengeParameters, clientMetadata, session, authenticationHelper, config, tokenOrchestrator) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const serverBValue = new BigInteger_1.BigInteger(challengeParameters?.SRP_B, 16);\n const salt = new BigInteger_1.BigInteger(challengeParameters?.SALT, 16);\n const username = challengeParameters?.USER_ID_FOR_SRP;\n if (!username)\n throw new AuthError_1.AuthError({\n name: 'EmptyUserIdForSRPException',\n message: 'USER_ID_FOR_SRP was not found in challengeParameters',\n });\n const hkdf = await authenticationHelper.getPasswordAuthenticationKey({\n username,\n password,\n serverBValue,\n salt,\n });\n const dateNow = (0, srp_1.getNowString)();\n const challengeResponses = {\n USERNAME: username,\n PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,\n TIMESTAMP: dateNow,\n PASSWORD_CLAIM_SIGNATURE: (0, srp_1.getSignatureString)({\n username,\n userPoolName,\n challengeParameters,\n dateNow,\n hkdf,\n }),\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReqResponseChallenge = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await respondToAuthChallenge({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, jsonReqResponseChallenge);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexports.handlePasswordVerifierChallenge = handlePasswordVerifierChallenge;\nasync function getSignInResult(params) {\n const { challengeName, challengeParameters, availableChallenges } = params;\n const authConfig = core_1.Amplify.getConfig().Auth?.Cognito;\n (0, utils_1.assertTokenProviderConfig)(authConfig);\n switch (challengeName) {\n case 'CUSTOM_CHALLENGE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE',\n additionalInfo: challengeParameters,\n },\n };\n case 'MFA_SETUP': {\n const { signInSession, username } = store_1.signInStore.getState();\n const mfaSetupTypes = getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_SETUP)) || [];\n const allowedMfaSetupTypes = getAllowedMfaSetupTypes(mfaSetupTypes);\n const isTotpMfaSetupAvailable = allowedMfaSetupTypes.includes('TOTP');\n const isEmailMfaSetupAvailable = allowedMfaSetupTypes.includes('EMAIL');\n if (isTotpMfaSetupAvailable && isEmailMfaSetupAvailable) {\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION',\n allowedMFATypes: allowedMfaSetupTypes,\n },\n };\n }\n if (isEmailMfaSetupAvailable) {\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP',\n },\n };\n }\n if (isTotpMfaSetupAvailable) {\n const associateSoftwareToken = (0, cognitoIdentityProvider_1.createAssociateSoftwareTokenClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: authConfig.userPoolEndpoint,\n }),\n });\n const { Session, SecretCode: secretCode } = await associateSoftwareToken({ region: (0, parsers_1.getRegionFromUserPoolId)(authConfig.userPoolId) }, {\n Session: signInSession,\n });\n store_1.signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP',\n totpSetupDetails: getTOTPSetupDetails(secretCode, username),\n },\n };\n }\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: `Cannot initiate MFA setup from available types: ${mfaSetupTypes}`,\n });\n }\n case 'NEW_PASSWORD_REQUIRED':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED',\n missingAttributes: parseAttributes(challengeParameters.requiredAttributes),\n },\n };\n case 'SELECT_MFA_TYPE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION',\n allowedMFATypes: getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_CHOOSE)),\n },\n };\n case 'SMS_OTP':\n case 'SMS_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_SMS_CODE',\n codeDeliveryDetails: {\n deliveryMedium: challengeParameters.CODE_DELIVERY_DELIVERY_MEDIUM,\n destination: challengeParameters.CODE_DELIVERY_DESTINATION,\n },\n },\n };\n case 'SOFTWARE_TOKEN_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_TOTP_CODE',\n },\n };\n case 'EMAIL_OTP':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE',\n codeDeliveryDetails: {\n deliveryMedium: challengeParameters.CODE_DELIVERY_DELIVERY_MEDIUM,\n destination: challengeParameters.CODE_DELIVERY_DESTINATION,\n },\n },\n };\n case 'WEB_AUTHN':\n return (0, handleWebAuthnSignInResult_1.handleWebAuthnSignInResult)(challengeParameters);\n case 'PASSWORD':\n case 'PASSWORD_SRP':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_PASSWORD',\n },\n };\n case 'SELECT_CHALLENGE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION',\n availableChallenges,\n },\n };\n case 'ADMIN_NO_SRP_AUTH':\n break;\n case 'DEVICE_PASSWORD_VERIFIER':\n break;\n case 'DEVICE_SRP_AUTH':\n break;\n case 'PASSWORD_VERIFIER':\n break;\n }\n // TODO: remove this error message for production apps\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: 'An error occurred during the sign in process. ' +\n `${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexports.getSignInResult = getSignInResult;\nfunction getTOTPSetupDetails(secretCode, username) {\n return {\n sharedSecret: secretCode,\n getSetupUri: (appName, accountName) => {\n const totpUri = `otpauth://totp/${appName}:${accountName ?? username}?secret=${secretCode}&issuer=${appName}`;\n return new utils_1.AmplifyUrl(totpUri);\n },\n };\n}\nexports.getTOTPSetupDetails = getTOTPSetupDetails;\nfunction getSignInResultFromError(errorName) {\n if (errorName === errors_1.InitiateAuthException.PasswordResetRequiredException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'RESET_PASSWORD' },\n };\n }\n else if (errorName === errors_1.InitiateAuthException.UserNotConfirmedException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'CONFIRM_SIGN_UP' },\n };\n }\n}\nexports.getSignInResultFromError = getSignInResultFromError;\nfunction parseAttributes(attributes) {\n if (!attributes)\n return [];\n const parsedAttributes = JSON.parse(attributes).map(att => att.includes(USER_ATTRIBUTES) ? att.replace(USER_ATTRIBUTES, '') : att);\n return parsedAttributes;\n}\nexports.parseAttributes = parseAttributes;\nfunction createAttributes(attributes) {\n if (!attributes)\n return {};\n const newAttributes = {};\n Object.entries(attributes).forEach(([key, value]) => {\n if (value)\n newAttributes[`${USER_ATTRIBUTES}${key}`] = value;\n });\n return newAttributes;\n}\nexports.createAttributes = createAttributes;\nasync function handleChallengeName(username, challengeName, session, challengeResponse, config, tokenOrchestrator, clientMetadata, options) {\n const userAttributes = options?.userAttributes;\n const deviceName = options?.friendlyDeviceName;\n switch (challengeName) {\n case 'WEB_AUTHN':\n case 'SELECT_CHALLENGE':\n if (challengeResponse === 'PASSWORD_SRP' ||\n challengeResponse === 'PASSWORD') {\n return {\n ChallengeName: challengeResponse,\n Session: session,\n $metadata: {},\n };\n }\n return (0, handleSelectChallenge_1.initiateSelectedChallenge)({\n username,\n session,\n selectedChallenge: challengeResponse,\n config,\n clientMetadata,\n });\n case 'SELECT_MFA_TYPE':\n return handleSelectMFATypeChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'MFA_SETUP':\n return handleMFASetupChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n deviceName,\n config,\n });\n case 'NEW_PASSWORD_REQUIRED':\n return handleCompleteNewPasswordChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n requiredAttributes: userAttributes,\n config,\n });\n case 'CUSTOM_CHALLENGE':\n return retryOnResourceNotFoundException(handleCustomChallenge, [\n {\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n tokenOrchestrator,\n },\n ], username, tokenOrchestrator);\n case 'SMS_MFA':\n case 'SOFTWARE_TOKEN_MFA':\n case 'SMS_OTP':\n case 'EMAIL_OTP':\n return handleMFAChallenge({\n challengeName,\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'PASSWORD':\n return (0, handleSelectChallengeWithPassword_1.handleSelectChallengeWithPassword)(username, challengeResponse, clientMetadata, config, session);\n case 'PASSWORD_SRP':\n return (0, handleSelectChallengeWithPasswordSRP_1.handleSelectChallengeWithPasswordSRP)(username, challengeResponse, // This is the actual password\n clientMetadata, config, session, tokenOrchestrator);\n }\n // TODO: remove this error message for production apps\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: `An error occurred during the sign in process.\n\t\t${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexports.handleChallengeName = handleChallengeName;\nfunction mapMfaType(mfa) {\n let mfaType = 'SMS_MFA';\n if (mfa === 'TOTP')\n mfaType = 'SOFTWARE_TOKEN_MFA';\n if (mfa === 'EMAIL')\n mfaType = 'EMAIL_OTP';\n return mfaType;\n}\nexports.mapMfaType = mapMfaType;\nfunction getMFAType(type) {\n if (type === 'SMS_MFA')\n return 'SMS';\n if (type === 'SOFTWARE_TOKEN_MFA')\n return 'TOTP';\n if (type === 'EMAIL_OTP')\n return 'EMAIL';\n // TODO: log warning for unknown MFA type\n}\nexports.getMFAType = getMFAType;\nfunction getMFATypes(types) {\n if (!types)\n return undefined;\n return types.map(getMFAType).filter(Boolean);\n}\nexports.getMFATypes = getMFATypes;\nfunction parseMFATypes(mfa) {\n if (!mfa)\n return [];\n return JSON.parse(mfa);\n}\nexports.parseMFATypes = parseMFATypes;\nfunction getAllowedMfaSetupTypes(availableMfaSetupTypes) {\n return availableMfaSetupTypes.filter(authMfaType => authMfaType === 'EMAIL' || authMfaType === 'TOTP');\n}\nexports.getAllowedMfaSetupTypes = getAllowedMfaSetupTypes;\nasync function assertUserNotAuthenticated() {\n let authUser;\n try {\n authUser = await (0, getCurrentUser_1.getCurrentUser)();\n }\n catch (error) { }\n if (authUser && authUser.userId && authUser.username) {\n throw new AuthError_1.AuthError({\n name: constants_1.USER_ALREADY_AUTHENTICATED_EXCEPTION,\n message: 'There is already a signed in user.',\n recoverySuggestion: 'Call signOut before calling signIn again.',\n });\n }\n}\nexports.assertUserNotAuthenticated = assertUserNotAuthenticated;\n/**\n * This function is used to kick off the device management flow.\n *\n * If an error is thrown while generating a hash device or calling the `ConfirmDevice`\n * client, then this API will ignore the error and return undefined. Otherwise the authentication\n * flow will not complete and the user won't be able to be signed in.\n *\n * @returns DeviceMetadata | undefined\n */\nasync function getNewDeviceMetadata({ userPoolId, userPoolEndpoint, newDeviceMetadata, accessToken, }) {\n if (!newDeviceMetadata)\n return undefined;\n const userPoolName = userPoolId.split('_')[1] || '';\n const authenticationHelper = await (0, srp_1.getAuthenticationHelper)(userPoolName);\n const deviceKey = newDeviceMetadata?.DeviceKey;\n const deviceGroupKey = newDeviceMetadata?.DeviceGroupKey;\n try {\n await authenticationHelper.generateHashDevice(deviceGroupKey ?? '', deviceKey ?? '');\n }\n catch (errGenHash) {\n // TODO: log error here\n return undefined;\n }\n const deviceSecretVerifierConfig = {\n Salt: utils_1.base64Encoder.convert((0, srp_1.getBytesFromHex)(authenticationHelper.getSaltToHashDevices())),\n PasswordVerifier: utils_1.base64Encoder.convert((0, srp_1.getBytesFromHex)(authenticationHelper.getVerifierDevices())),\n };\n const randomPassword = authenticationHelper.getRandomPassword();\n try {\n const confirmDevice = (0, cognitoIdentityProvider_1.createConfirmDeviceClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n await confirmDevice({ region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId) }, {\n AccessToken: accessToken,\n DeviceName: await (0, utils_1.getDeviceName)(),\n DeviceKey: newDeviceMetadata?.DeviceKey,\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n });\n return {\n deviceKey,\n deviceGroupKey,\n randomPassword,\n };\n }\n catch (error) {\n // TODO: log error here\n return undefined;\n }\n}\nexports.getNewDeviceMetadata = getNewDeviceMetadata;\n/**\n * It will retry the function if the error is a `ResourceNotFoundException` and\n * will clean the device keys stored in the storage mechanism.\n *\n */\nasync function retryOnResourceNotFoundException(func, args, username, tokenOrchestrator) {\n try {\n return await func(...args);\n }\n catch (error) {\n if (error instanceof AuthError_1.AuthError &&\n error.name === 'ResourceNotFoundException' &&\n error.message.includes('Device does not exist.')) {\n await tokenOrchestrator.clearDeviceMetadata(username);\n return func(...args);\n }\n throw error;\n }\n}\nexports.retryOnResourceNotFoundException = retryOnResourceNotFoundException;\nfunction setActiveSignInUsername(username) {\n const { dispatch } = store_1.signInStore;\n dispatch({ type: 'SET_USERNAME', value: username });\n}\nexports.setActiveSignInUsername = setActiveSignInUsername;\nfunction getActiveSignInUsername(username) {\n const state = store_1.signInStore.getState();\n return state.username ?? username;\n}\nexports.getActiveSignInUsername = getActiveSignInUsername;\nasync function handleMFAChallenge({ challengeName, challengeResponse, clientMetadata, session, username, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const challengeResponses = {\n USERNAME: username,\n };\n if (challengeName === 'EMAIL_OTP') {\n challengeResponses.EMAIL_OTP_CODE = challengeResponse;\n }\n if (challengeName === 'SMS_MFA') {\n challengeResponses.SMS_MFA_CODE = challengeResponse;\n }\n if (challengeName === 'SMS_OTP') {\n challengeResponses.SMS_OTP_CODE = challengeResponse;\n }\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = challengeResponse;\n }\n const userContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: challengeName,\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData: userContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexports.handleMFAChallenge = handleMFAChallenge;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signInHelpers.js","sources":["../../../../../src/providers/cognito/utils/signInHelpers.ts"],"sourcesContent":["\"use strict\";\n// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleMFAChallenge = exports.getActiveSignInUsername = exports.assertUserNotAuthenticated = exports.getAllowedMfaSetupTypes = exports.parseMFATypes = exports.getMFATypes = exports.getMFAType = exports.mapMfaType = exports.handleChallengeName = exports.createAttributes = exports.parseAttributes = exports.getSignInResultFromError = exports.getTOTPSetupDetails = exports.getSignInResult = exports.handleCustomSRPAuthFlow = exports.handleCustomAuthFlowWithoutSRP = exports.handleUserSRPAuthFlow = exports.handleUserPasswordAuthFlow = exports.handleCompleteNewPasswordChallenge = exports.handleSelectMFATypeChallenge = exports.handleMFASetupChallenge = exports.handleCustomChallenge = void 0;\nconst core_1 = require(\"@aws-amplify/core\");\nconst utils_1 = require(\"@aws-amplify/core/internals/utils\");\nconst AuthError_1 = require(\"../../../errors/AuthError\");\nconst errors_1 = require(\"../types/errors\");\nconst AuthErrorStrings_1 = require(\"../../../common/AuthErrorStrings\");\nconst validation_1 = require(\"../../../errors/types/validation\");\nconst assertValidationError_1 = require(\"../../../errors/utils/assertValidationError\");\nconst constants_1 = require(\"../../../errors/constants\");\nconst getCurrentUser_1 = require(\"../apis/getCurrentUser\");\nconst utils_2 = require(\"../../../utils\");\nconst cognitoIdentityProvider_1 = require(\"../../../foundation/factories/serviceClients/cognitoIdentityProvider\");\nconst factories_1 = require(\"../factories\");\nconst parsers_1 = require(\"../../../foundation/parsers\");\nconst handleWebAuthnSignInResult_1 = require(\"../../../client/flows/userAuth/handleWebAuthnSignInResult\");\nconst handlePasswordSRP_1 = require(\"../../../client/flows/shared/handlePasswordSRP\");\nconst handleSelectChallenge_1 = require(\"../../../client/flows/userAuth/handleSelectChallenge\");\nconst handleSelectChallengeWithPassword_1 = require(\"../../../client/flows/userAuth/handleSelectChallengeWithPassword\");\nconst handleSelectChallengeWithPasswordSRP_1 = require(\"../../../client/flows/userAuth/handleSelectChallengeWithPasswordSRP\");\nconst store_1 = require(\"../../../client/utils/store\");\nconst srp_1 = require(\"./srp\");\nconst userContextData_1 = require(\"./userContextData\");\nconst handlePasswordVerifierChallenge_1 = require(\"./handlePasswordVerifierChallenge\");\nconst handleDeviceSRPAuth_1 = require(\"./handleDeviceSRPAuth\");\nconst retryOnResourceNotFoundException_1 = require(\"./retryOnResourceNotFoundException\");\nconst setActiveSignInUsername_1 = require(\"./setActiveSignInUsername\");\nconst USER_ATTRIBUTES = 'userAttributes.';\nfunction isWebAuthnResultAuthSignInOutput(result) {\n return 'isSignedIn' in result && 'nextStep' in result;\n}\nasync function handleCustomChallenge({ challengeResponse, clientMetadata, session, username, config, tokenOrchestrator, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const challengeResponses = {\n USERNAME: username,\n ANSWER: challengeResponse,\n };\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH') {\n return (0, handleDeviceSRPAuth_1.handleDeviceSRPAuth)({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n }\n return response;\n}\nexports.handleCustomChallenge = handleCustomChallenge;\nasync function handleMFASetupChallenge({ challengeResponse, username, clientMetadata, session, deviceName, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n if (challengeResponse === 'EMAIL') {\n return {\n ChallengeName: 'MFA_SETUP',\n Session: session,\n ChallengeParameters: {\n MFAS_CAN_SETUP: '[\"EMAIL_OTP\"]',\n },\n $metadata: {},\n };\n }\n if (challengeResponse === 'TOTP') {\n return {\n ChallengeName: 'MFA_SETUP',\n Session: session,\n ChallengeParameters: {\n MFAS_CAN_SETUP: '[\"SOFTWARE_TOKEN_MFA\"]',\n },\n $metadata: {},\n };\n }\n const challengeResponses = {\n USERNAME: username,\n };\n const isTOTPCode = /^\\d+$/.test(challengeResponse);\n if (isTOTPCode) {\n const verifySoftwareToken = (0, cognitoIdentityProvider_1.createVerifySoftwareTokenClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const { Session } = await verifySoftwareToken({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, {\n UserCode: challengeResponse,\n Session: session,\n FriendlyDeviceName: deviceName,\n });\n store_1.signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n const jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ChallengeResponses: challengeResponses,\n Session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n }\n const isEmail = challengeResponse.includes('@');\n if (isEmail) {\n challengeResponses.EMAIL = challengeResponse;\n const jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n }\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: `Cannot proceed with MFA setup using challengeResponse: ${challengeResponse}`,\n recoverySuggestion: 'Try passing \"EMAIL\", \"TOTP\", a valid email, or OTP code as the challengeResponse.',\n });\n}\nexports.handleMFASetupChallenge = handleMFASetupChallenge;\nasync function handleSelectMFATypeChallenge({ challengeResponse, username, clientMetadata, session, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n (0, assertValidationError_1.assertValidationError)(challengeResponse === 'TOTP' ||\n challengeResponse === 'SMS' ||\n challengeResponse === 'EMAIL', validation_1.AuthValidationErrorCode.IncorrectMFAMethod);\n const challengeResponses = {\n USERNAME: username,\n ANSWER: mapMfaType(challengeResponse),\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexports.handleSelectMFATypeChallenge = handleSelectMFATypeChallenge;\nasync function handleCompleteNewPasswordChallenge({ challengeResponse, clientMetadata, session, username, requiredAttributes, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const challengeResponses = {\n ...createAttributes(requiredAttributes),\n NEW_PASSWORD: challengeResponse,\n USERNAME: username,\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexports.handleCompleteNewPasswordChallenge = handleCompleteNewPasswordChallenge;\nasync function handleUserPasswordAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId, userPoolEndpoint } = config;\n const authParameters = {\n USERNAME: username,\n PASSWORD: password,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const initiateAuth = (0, cognitoIdentityProvider_1.createInitiateAuthClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await initiateAuth({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ??\n response.ChallengeParameters?.USER_ID_FOR_SRP ??\n username;\n (0, setActiveSignInUsername_1.setActiveSignInUsername)(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return (0, handleDeviceSRPAuth_1.handleDeviceSRPAuth)({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexports.handleUserPasswordAuthFlow = handleUserPasswordAuthFlow;\nasync function handleUserSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n return (0, handlePasswordSRP_1.handlePasswordSRP)({\n username,\n password,\n clientMetadata,\n config,\n tokenOrchestrator,\n authFlow: 'USER_SRP_AUTH',\n });\n}\nexports.handleUserSRPAuthFlow = handleUserSRPAuthFlow;\nasync function handleCustomAuthFlowWithoutSRP(username, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId, userPoolEndpoint } = config;\n const authParameters = {\n USERNAME: username,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const initiateAuth = (0, cognitoIdentityProvider_1.createInitiateAuthClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const response = await initiateAuth({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ?? username;\n (0, setActiveSignInUsername_1.setActiveSignInUsername)(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return (0, handleDeviceSRPAuth_1.handleDeviceSRPAuth)({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexports.handleCustomAuthFlowWithoutSRP = handleCustomAuthFlowWithoutSRP;\nasync function handleCustomSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n (0, utils_1.assertTokenProviderConfig)(config);\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const authenticationHelper = await (0, srp_1.getAuthenticationHelper)(userPoolName);\n const authParameters = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n CHALLENGE_NAME: 'SRP_A',\n };\n const UserContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const initiateAuth = (0, cognitoIdentityProvider_1.createInitiateAuthClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const { ChallengeParameters: challengeParameters, Session: session } = await initiateAuth({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = challengeParameters?.USERNAME ?? username;\n (0, setActiveSignInUsername_1.setActiveSignInUsername)(activeUsername);\n return (0, retryOnResourceNotFoundException_1.retryOnResourceNotFoundException)(handlePasswordVerifierChallenge_1.handlePasswordVerifierChallenge, [\n password,\n challengeParameters,\n clientMetadata,\n session,\n authenticationHelper,\n config,\n tokenOrchestrator,\n ], activeUsername, tokenOrchestrator);\n}\nexports.handleCustomSRPAuthFlow = handleCustomSRPAuthFlow;\nasync function getSignInResult(params) {\n const { challengeName, challengeParameters, availableChallenges } = params;\n const authConfig = core_1.Amplify.getConfig().Auth?.Cognito;\n (0, utils_1.assertTokenProviderConfig)(authConfig);\n switch (challengeName) {\n case 'CUSTOM_CHALLENGE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE',\n additionalInfo: challengeParameters,\n },\n };\n case 'MFA_SETUP': {\n const { signInSession, username } = store_1.signInStore.getState();\n const mfaSetupTypes = getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_SETUP)) || [];\n const allowedMfaSetupTypes = getAllowedMfaSetupTypes(mfaSetupTypes);\n const isTotpMfaSetupAvailable = allowedMfaSetupTypes.includes('TOTP');\n const isEmailMfaSetupAvailable = allowedMfaSetupTypes.includes('EMAIL');\n if (isTotpMfaSetupAvailable && isEmailMfaSetupAvailable) {\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_MFA_SETUP_SELECTION',\n allowedMFATypes: allowedMfaSetupTypes,\n },\n };\n }\n if (isEmailMfaSetupAvailable) {\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_EMAIL_SETUP',\n },\n };\n }\n if (isTotpMfaSetupAvailable) {\n const associateSoftwareToken = (0, cognitoIdentityProvider_1.createAssociateSoftwareTokenClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: authConfig.userPoolEndpoint,\n }),\n });\n const { Session, SecretCode: secretCode } = await associateSoftwareToken({ region: (0, parsers_1.getRegionFromUserPoolId)(authConfig.userPoolId) }, {\n Session: signInSession,\n });\n store_1.signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP',\n totpSetupDetails: getTOTPSetupDetails(secretCode, username),\n },\n };\n }\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: `Cannot initiate MFA setup from available types: ${mfaSetupTypes}`,\n });\n }\n case 'NEW_PASSWORD_REQUIRED':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED',\n missingAttributes: parseAttributes(challengeParameters.requiredAttributes),\n },\n };\n case 'SELECT_MFA_TYPE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION',\n allowedMFATypes: getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_CHOOSE)),\n },\n };\n case 'SMS_OTP':\n case 'SMS_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_SMS_CODE',\n codeDeliveryDetails: {\n deliveryMedium: challengeParameters.CODE_DELIVERY_DELIVERY_MEDIUM,\n destination: challengeParameters.CODE_DELIVERY_DESTINATION,\n },\n },\n };\n case 'SOFTWARE_TOKEN_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_TOTP_CODE',\n },\n };\n case 'EMAIL_OTP':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_EMAIL_CODE',\n codeDeliveryDetails: {\n deliveryMedium: challengeParameters.CODE_DELIVERY_DELIVERY_MEDIUM,\n destination: challengeParameters.CODE_DELIVERY_DESTINATION,\n },\n },\n };\n case 'WEB_AUTHN': {\n const result = await (0, handleWebAuthnSignInResult_1.handleWebAuthnSignInResult)(challengeParameters);\n if (isWebAuthnResultAuthSignInOutput(result)) {\n return result;\n }\n return getSignInResult(result);\n }\n case 'PASSWORD':\n case 'PASSWORD_SRP':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_PASSWORD',\n },\n };\n case 'SELECT_CHALLENGE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_FIRST_FACTOR_SELECTION',\n availableChallenges,\n },\n };\n case 'ADMIN_NO_SRP_AUTH':\n break;\n case 'DEVICE_PASSWORD_VERIFIER':\n break;\n case 'DEVICE_SRP_AUTH':\n break;\n case 'PASSWORD_VERIFIER':\n break;\n }\n // TODO: remove this error message for production apps\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: 'An error occurred during the sign in process. ' +\n `${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexports.getSignInResult = getSignInResult;\nfunction getTOTPSetupDetails(secretCode, username) {\n return {\n sharedSecret: secretCode,\n getSetupUri: (appName, accountName) => {\n const totpUri = `otpauth://totp/${appName}:${accountName ?? username}?secret=${secretCode}&issuer=${appName}`;\n return new utils_1.AmplifyUrl(totpUri);\n },\n };\n}\nexports.getTOTPSetupDetails = getTOTPSetupDetails;\nfunction getSignInResultFromError(errorName) {\n if (errorName === errors_1.InitiateAuthException.PasswordResetRequiredException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'RESET_PASSWORD' },\n };\n }\n else if (errorName === errors_1.InitiateAuthException.UserNotConfirmedException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'CONFIRM_SIGN_UP' },\n };\n }\n}\nexports.getSignInResultFromError = getSignInResultFromError;\nfunction parseAttributes(attributes) {\n if (!attributes)\n return [];\n const parsedAttributes = JSON.parse(attributes).map(att => att.includes(USER_ATTRIBUTES) ? att.replace(USER_ATTRIBUTES, '') : att);\n return parsedAttributes;\n}\nexports.parseAttributes = parseAttributes;\nfunction createAttributes(attributes) {\n if (!attributes)\n return {};\n const newAttributes = {};\n Object.entries(attributes).forEach(([key, value]) => {\n if (value)\n newAttributes[`${USER_ATTRIBUTES}${key}`] = value;\n });\n return newAttributes;\n}\nexports.createAttributes = createAttributes;\nasync function handleChallengeName(username, challengeName, session, challengeResponse, config, tokenOrchestrator, clientMetadata, options) {\n const userAttributes = options?.userAttributes;\n const deviceName = options?.friendlyDeviceName;\n switch (challengeName) {\n case 'WEB_AUTHN':\n case 'SELECT_CHALLENGE':\n if (challengeResponse === 'PASSWORD_SRP' ||\n challengeResponse === 'PASSWORD') {\n return {\n ChallengeName: challengeResponse,\n Session: session,\n $metadata: {},\n };\n }\n return (0, handleSelectChallenge_1.initiateSelectedChallenge)({\n username,\n session,\n selectedChallenge: challengeResponse,\n config,\n clientMetadata,\n });\n case 'SELECT_MFA_TYPE':\n return handleSelectMFATypeChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'MFA_SETUP':\n return handleMFASetupChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n deviceName,\n config,\n });\n case 'NEW_PASSWORD_REQUIRED':\n return handleCompleteNewPasswordChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n requiredAttributes: userAttributes,\n config,\n });\n case 'CUSTOM_CHALLENGE':\n return (0, retryOnResourceNotFoundException_1.retryOnResourceNotFoundException)(handleCustomChallenge, [\n {\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n tokenOrchestrator,\n },\n ], username, tokenOrchestrator);\n case 'SMS_MFA':\n case 'SOFTWARE_TOKEN_MFA':\n case 'SMS_OTP':\n case 'EMAIL_OTP':\n return handleMFAChallenge({\n challengeName,\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'PASSWORD':\n return (0, handleSelectChallengeWithPassword_1.handleSelectChallengeWithPassword)(username, challengeResponse, clientMetadata, config, session);\n case 'PASSWORD_SRP':\n return (0, handleSelectChallengeWithPasswordSRP_1.handleSelectChallengeWithPasswordSRP)(username, challengeResponse, // This is the actual password\n clientMetadata, config, session, tokenOrchestrator);\n }\n // TODO: remove this error message for production apps\n throw new AuthError_1.AuthError({\n name: AuthErrorStrings_1.AuthErrorCodes.SignInException,\n message: `An error occurred during the sign in process.\n\t\t${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexports.handleChallengeName = handleChallengeName;\nfunction mapMfaType(mfa) {\n let mfaType = 'SMS_MFA';\n if (mfa === 'TOTP')\n mfaType = 'SOFTWARE_TOKEN_MFA';\n if (mfa === 'EMAIL')\n mfaType = 'EMAIL_OTP';\n return mfaType;\n}\nexports.mapMfaType = mapMfaType;\nfunction getMFAType(type) {\n if (type === 'SMS_MFA')\n return 'SMS';\n if (type === 'SOFTWARE_TOKEN_MFA')\n return 'TOTP';\n if (type === 'EMAIL_OTP')\n return 'EMAIL';\n // TODO: log warning for unknown MFA type\n}\nexports.getMFAType = getMFAType;\nfunction getMFATypes(types) {\n if (!types)\n return undefined;\n return types.map(getMFAType).filter(Boolean);\n}\nexports.getMFATypes = getMFATypes;\nfunction parseMFATypes(mfa) {\n if (!mfa)\n return [];\n return JSON.parse(mfa);\n}\nexports.parseMFATypes = parseMFATypes;\nfunction getAllowedMfaSetupTypes(availableMfaSetupTypes) {\n return availableMfaSetupTypes.filter(authMfaType => authMfaType === 'EMAIL' || authMfaType === 'TOTP');\n}\nexports.getAllowedMfaSetupTypes = getAllowedMfaSetupTypes;\nasync function assertUserNotAuthenticated() {\n let authUser;\n try {\n authUser = await (0, getCurrentUser_1.getCurrentUser)();\n }\n catch (error) { }\n if (authUser && authUser.userId && authUser.username) {\n throw new AuthError_1.AuthError({\n name: constants_1.USER_ALREADY_AUTHENTICATED_EXCEPTION,\n message: 'There is already a signed in user.',\n recoverySuggestion: 'Call signOut before calling signIn again.',\n });\n }\n}\nexports.assertUserNotAuthenticated = assertUserNotAuthenticated;\nfunction getActiveSignInUsername(username) {\n const state = store_1.signInStore.getState();\n return state.username ?? username;\n}\nexports.getActiveSignInUsername = getActiveSignInUsername;\nasync function handleMFAChallenge({ challengeName, challengeResponse, clientMetadata, session, username, config, }) {\n const { userPoolId, userPoolClientId, userPoolEndpoint } = config;\n const challengeResponses = {\n USERNAME: username,\n };\n if (challengeName === 'EMAIL_OTP') {\n challengeResponses.EMAIL_OTP_CODE = challengeResponse;\n }\n if (challengeName === 'SMS_MFA') {\n challengeResponses.SMS_MFA_CODE = challengeResponse;\n }\n if (challengeName === 'SMS_OTP') {\n challengeResponses.SMS_OTP_CODE = challengeResponse;\n }\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = challengeResponse;\n }\n const userContextData = (0, userContextData_1.getUserContextData)({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: challengeName,\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData: userContextData,\n };\n const respondToAuthChallenge = (0, cognitoIdentityProvider_1.createRespondToAuthChallengeClient)({\n endpointResolver: (0, factories_1.createCognitoUserPoolEndpointResolver)({\n endpointOverride: userPoolEndpoint,\n }),\n });\n return respondToAuthChallenge({\n region: (0, parsers_1.getRegionFromUserPoolId)(userPoolId),\n userAgentValue: (0, utils_2.getAuthUserAgentValue)(utils_1.AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexports.handleMFAChallenge = handleMFAChallenge;\n"],"names":[],"mappings":"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"}
|