@aws-amplify/auth
Version:
Auth category of aws-amplify
1 lines • 3.38 kB
Source Map (JSON)
{"version":3,"file":"setUpTOTP.mjs","sources":["../../../../../src/providers/cognito/apis/setUpTOTP.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, fetchAuthSession } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { SETUP_TOTP_EXCEPTION, } from '../types/errors';\nimport { getTOTPSetupDetails } from '../utils/signInHelpers';\nimport { getRegionFromUserPoolId } from '../../../foundation/parsers';\nimport { assertAuthTokens } from '../utils/types';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { createAssociateSoftwareTokenClient } from '../../../foundation/factories/serviceClients/cognitoIdentityProvider';\nimport { createCognitoUserPoolEndpointResolver } from '../factories';\n/**\n * Sets up TOTP for the user.\n *\n * @returns SetUpTOTPOutput\n * @throws -{@link AssociateSoftwareTokenException}\n * Thrown if a service occurs while setting up TOTP.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n **/\nexport async function setUpTOTP() {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolEndpoint, userPoolId } = authConfig;\n const { tokens } = await fetchAuthSession({ forceRefresh: false });\n assertAuthTokens(tokens);\n const username = tokens.idToken?.payload['cognito:username'] ?? '';\n const associateSoftwareToken = createAssociateSoftwareTokenClient({\n endpointResolver: createCognitoUserPoolEndpointResolver({\n endpointOverride: userPoolEndpoint,\n }),\n });\n const { SecretCode } = await associateSoftwareToken({\n region: getRegionFromUserPoolId(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SetUpTOTP),\n }, {\n AccessToken: tokens.accessToken.toString(),\n });\n if (!SecretCode) {\n // This should never happen.\n throw new AuthError({\n name: SETUP_TOTP_EXCEPTION,\n message: 'Failed to set up TOTP.',\n });\n }\n return getTOTPSetupDetails(SecretCode, JSON.stringify(username));\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,SAAS,GAAG;AAClC,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO;AACxD,IAAI,yBAAyB,CAAC,UAAU,CAAC;AACzC,IAAI,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,UAAU;AACvD,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACtE,IAAI,gBAAgB,CAAC,MAAM,CAAC;AAC5B,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACtE,IAAI,MAAM,sBAAsB,GAAG,kCAAkC,CAAC;AACtE,QAAQ,gBAAgB,EAAE,qCAAqC,CAAC;AAChE,YAAY,gBAAgB,EAAE,gBAAgB;AAC9C,SAAS,CAAC;AACV,KAAK,CAAC;AACN,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,sBAAsB,CAAC;AACxD,QAAQ,MAAM,EAAE,uBAAuB,CAAC,UAAU,CAAC;AACnD,QAAQ,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC,SAAS,CAAC;AACnE,KAAK,EAAE;AACP,QAAQ,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE;AAClD,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB;AACA,QAAQ,MAAM,IAAI,SAAS,CAAC;AAC5B,YAAY,IAAI,EAAE,oBAAoB;AACtC,YAAY,OAAO,EAAE,wBAAwB;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,OAAO,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpE;;;;"}