UNPKG

@aws-amplify/auth

Version:
1 lines 6.42 kB
{"version":3,"file":"handleWebAuthnSignInResult.mjs","sources":["../../../../../src/client/flows/userAuth/handleWebAuthnSignInResult.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthErrorCodes } from '../../../common/AuthErrorStrings';\nimport { createRespondToAuthChallengeClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';\nimport { getRegionFromUserPoolId } from '../../../foundation/parsers';\nimport { createCognitoUserPoolEndpointResolver } from '../../../providers/cognito/factories';\nimport { cacheCognitoTokens } from '../../../providers/cognito/tokenProvider/cacheTokens';\nimport { dispatchSignedInHubEvent } from '../../../providers/cognito/utils/dispatchSignedInHubEvent';\nimport { setActiveSignInState, signInStore } from '../../../client/utils/store';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getPasskey } from '../../utils/passkey';\nimport { PasskeyErrorCode, assertPasskeyError, } from '../../utils/passkey/errors';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getNewDeviceMetadata } from '../../../providers/cognito/utils/getNewDeviceMetadata';\nexport async function handleWebAuthnSignInResult(challengeParameters) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { username, signInSession, signInDetails, challengeName } = signInStore.getState();\n if (challengeName !== 'WEB_AUTHN' || !username) {\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: 'Unable to proceed due to invalid sign in state.',\n });\n }\n const { CREDENTIAL_REQUEST_OPTIONS: credentialRequestOptions } = challengeParameters;\n assertPasskeyError(!!credentialRequestOptions, PasskeyErrorCode.InvalidPasskeyAuthenticationOptions);\n const cred = await getPasskey(JSON.parse(credentialRequestOptions));\n const respondToAuthChallenge = createRespondToAuthChallengeClient({\n endpointResolver: createCognitoUserPoolEndpointResolver({\n endpointOverride: authConfig.userPoolEndpoint,\n }),\n });\n const { ChallengeName: nextChallengeName, ChallengeParameters: nextChallengeParameters, AuthenticationResult: authenticationResult, Session: nextSession, } = await respondToAuthChallenge({\n region: getRegionFromUserPoolId(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, {\n ChallengeName: 'WEB_AUTHN',\n ChallengeResponses: {\n USERNAME: username,\n CREDENTIAL: JSON.stringify(cred),\n },\n ClientId: authConfig.userPoolClientId,\n Session: signInSession,\n });\n setActiveSignInState({\n signInSession: nextSession,\n username,\n challengeName: nextChallengeName,\n signInDetails,\n });\n if (authenticationResult) {\n await cacheCognitoTokens({\n ...authenticationResult,\n username,\n NewDeviceMetadata: await getNewDeviceMetadata({\n userPoolId: authConfig.userPoolId,\n userPoolEndpoint: authConfig.userPoolEndpoint,\n newDeviceMetadata: authenticationResult.NewDeviceMetadata,\n accessToken: authenticationResult.AccessToken,\n }),\n signInDetails,\n });\n signInStore.dispatch({ type: 'RESET_STATE' });\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n if (nextChallengeName === 'WEB_AUTHN') {\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: 'Sequential WEB_AUTHN challenges returned from underlying service cannot be handled.',\n });\n }\n return {\n challengeName: nextChallengeName,\n challengeParameters: nextChallengeParameters,\n };\n}\n"],"names":[],"mappings":"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"}