UNPKG

@aws-amplify/amplify-category-auth

Version:

amplify-cli authentication plugin

645 lines • 14.1 kB
"use strict"; const messages = { authExists: 'Auth has already been added to this project. To update run amplify update auth.', dependenciesExists: '\nYou have configured resources that might depend on this Cognito resource. Updating this Cognito resource could have unintended side effects.\n', }; const learnMoreOption = [ { name: 'I want to learn more.', value: 'learnMore', }, ]; const defaultPromptMap = [ { name: 'Default configuration', value: 'default', }, { name: 'Default configuration with Social Provider (Federation)', value: 'defaultSocial', }, { name: 'Manual configuration', value: 'manual', }, ...learnMoreOption, ]; const updateFlowMap = [ { name: 'Apply default configuration without Social Provider (Federation)', value: 'default', conditionKey: 'useDefault', }, { name: 'Apply default configuration with Social Provider (Federation)', value: 'defaultSocial', conditionKey: 'useDefault', }, { name: 'Walkthrough all the auth configurations', value: 'manual', }, { name: 'Add/Edit signin and signout redirect URIs', value: 'callbacks', conditionKey: 'CallbackURLs', conditionMsg: 'You have not initially configured OAuth.', }, { name: 'Update OAuth social providers', value: 'providers', conditionKey: 'hostedUIProviderCreds', conditionMsg: 'You have not initially configured OAuth.', }, { name: 'Create or update Cognito user pool groups', value: 'updateUserPoolGroups', }, { name: 'Create or update Admin queries API', value: 'updateAdminQueries', }, ]; const booleanOptions = [ { name: 'Yes', value: true, }, { name: 'No', value: false, }, ...learnMoreOption, ]; const mfaOptions = [ { name: 'OFF', value: 'OFF', }, { name: 'ON (Required for all logins, can not be enabled later)', value: 'ON', }, { name: 'OPTIONAL (Individual users can use MFA)', value: 'OPTIONAL', }, ...learnMoreOption, ]; const mfaMethods = [ { name: 'SMS Text Message', value: 'SMS Text Message', }, { name: 'Time-Based One-Time Password (TOTP)', value: 'TOTP', }, ]; const emailRegistration = [ { name: 'Enabled (Requires per-user email entry at registration)', value: ['email'], }, { name: 'Disabled (Uses SMS/TOTP as an alternative)', value: ['phone_number'], }, ]; const authSelectionMap = [ { name: 'User Sign-Up, Sign-In, connected with AWS IAM controls (Enables per-user Storage features for images or other content, Analytics, and more)', value: 'identityPoolAndUserPool', }, { name: 'User Sign-Up & Sign-In only (Best used with a cloud API only)', value: 'userPoolOnly', }, ...learnMoreOption, ]; const attributeProviderMap = { address: { facebook: {}, google: {}, loginwithamazon: {}, signinwithapple: {}, }, birthdate: { facebook: { attr: 'birthday', scope: 'public_profile', }, google: { attr: 'birthdays', scope: 'profile', }, loginwithamazon: {}, signinwithapple: {}, }, email: { facebook: { attr: 'email', scope: 'email', }, google: { attr: 'email', scope: 'email', }, loginwithamazon: { attr: 'email', scope: 'profile', }, signinwithapple: { attr: 'email', scope: 'email', }, }, family_name: { facebook: { attr: 'last_name', scope: 'public_profile', }, google: { attr: 'family_name', scope: 'profile', }, loginwithamazon: {}, signinwithapple: { attr: 'lastName', scope: 'name', }, }, gender: { facebook: { attr: 'gender', scope: 'public_profile', }, google: { attr: 'genders', scope: 'profile', }, loginwithamazon: {}, signinwithapple: {}, }, given_name: { facebook: { attr: 'first_name', scope: 'public_profile', }, google: { attr: 'given_name', scope: 'profile', }, loginwithamazon: {}, signinwithapple: { attr: 'firstName', scope: 'name', }, }, locale: { facebook: {}, google: {}, loginwithamazon: { attr: 'postal_code', scope: 'postal_code', }, signinwithapple: {}, }, middle_name: { facebook: { attr: 'middle_name', scope: 'public_profile', }, google: {}, loginwithamazon: {}, signinwithapple: {}, }, name: { facebook: { attr: 'name', scope: 'public_profile', }, google: { attr: 'name', scope: 'profile', }, loginwithamazon: { attr: 'name', scope: 'profile', }, signinwithapple: { attr: 'name', scope: 'name', }, }, nickname: { facebook: {}, google: {}, loginwithamazon: {}, signinwithapple: {}, }, phone_number: { facebook: {}, google: { attr: 'phoneNumbers', scope: 'profile', }, loginwithamazon: {}, signinwithapple: {}, }, picture: { facebook: { attr: 'picture', scope: 'public_profile', }, google: { attr: 'picture', scope: 'profile', }, loginwithamazon: {}, signinwithapple: {}, }, preferred_username: { facebook: {}, google: {}, loginwithamazon: {}, signinwithapple: {}, }, profile: { facebook: {}, google: {}, loginwithamazon: {}, signinwithapple: {}, }, zoneinfo: { facebook: {}, google: {}, loginwithamazon: {}, signinwithapple: {}, }, website: { facebook: {}, google: {}, loginwithamazon: {}, signinwithapple: {}, }, username: { facebook: { attr: 'id', scope: 'public_profile', }, google: { attr: 'sub', scope: 'profile', }, loginwithamazon: { attr: 'user_id', scope: 'profile:user_id', }, signinwithapple: {}, }, updated_at: { facebook: { attr: 'updated_at', scope: 'public_profile', }, google: {}, loginwithamazon: {}, signinwithapple: {}, }, }; const coreAttributes = [ { name: 'Address', value: 'address', }, { name: 'Birthdate', value: 'birthdate', }, { name: 'Email', value: 'email', }, { name: 'Family Name', value: 'family_name', }, { name: 'Middle Name', value: 'middle_name', }, { name: 'Gender', value: 'gender', }, { name: 'Locale', value: 'locale', }, { name: 'Given Name', value: 'given_name', }, { name: 'Name', value: 'name', }, { name: 'Nickname', value: 'nickname', }, { name: 'Phone Number', value: 'phone_number', }, { name: 'Preferred Username', value: 'preferred_username', }, { name: 'Picture', value: 'picture', }, { name: 'Profile', value: 'profile', }, { name: 'Updated At', value: 'updated_at', }, { name: 'Website', value: 'website', }, { name: 'Zone Info', value: 'zoneinfo', }, ]; const aliasAttributes = [ { name: 'Email', value: 'email', checked: true, }, { name: 'Username', value: 'preferred_username', }, { name: 'Phone number', value: 'phone_number', }, ]; const appClientReadAttributes = [ ...coreAttributes, { name: 'Email Verified?', value: 'email_verified', }, { name: 'Phone Number Verified?', value: 'phone_number_verified', }, ]; const authProviders = [ { name: 'Facebook', value: 'graph.facebook.com', answerHashKey: 'facebookAppId', }, { name: 'Google', value: 'accounts.google.com', answerHashKey: 'googleClientId', }, { name: 'Amazon', value: 'www.amazon.com', answerHashKey: 'amazonAppId', }, { name: 'Apple', value: 'appleid.apple.com', answerHashKey: 'appleAppId', }, ]; const hostedUIProviders = [ { name: 'Facebook', value: 'Facebook', key: 'FACEBOOK', }, { name: 'Google', value: 'Google', key: 'GOOGLE', }, { name: 'Login With Amazon', value: 'LoginWithAmazon', key: 'AMAZON', }, { name: 'Sign in with Apple', value: 'SignInWithApple', key: 'APPLE', }, ]; const authorizeScopes = [ { name: 'Email', value: 'email', }, { name: 'Public Profile', value: 'public_profile', }, ]; const signInOptions = [ { name: 'Username', value: 'username', }, { name: 'Email', value: 'email', }, { name: 'Phone Number', value: 'phone_number', }, { name: 'Email or Phone Number', value: 'email, phone_number', }, ...learnMoreOption, ]; const socialLoginOptions = [ { name: 'Identity Pool', value: 'identityPool', }, { name: 'User Pool', value: 'userPool', }, { name: 'Neither', value: null, }, ]; const oAuthFlows = [ { name: 'Authorization code grant', value: 'code', }, { name: 'Implicit grant', value: 'implicit', }, ]; const oAuthScopes = [ { name: 'Phone', value: 'phone', }, { name: 'Email', value: 'email', }, { name: 'OpenID', value: 'openid', }, { name: 'Profile', value: 'profile', }, { name: 'aws.cognito.signin.user.admin', value: 'aws.cognito.signin.user.admin', }, ]; const capabilities = [ { name: 'Add Google reCaptcha Challenge', value: 'mfaWithCaptcha', triggers: { DefineAuthChallenge: ['captcha-define-challenge'], CreateAuthChallenge: ['captcha-create-challenge'], VerifyAuthChallengeResponse: ['captcha-verify'], }, }, { name: 'Email Verification Link with Redirect', value: 'confirmationRedirect', triggers: { CustomMessage: ['verification-link'], }, }, { name: 'Add User to Group', value: 'addUserToGroup', triggers: { PostConfirmation: ['add-to-group'], }, }, { name: 'Email Domain Filtering (denylist)', value: 'emailDenylist', triggers: { PreSignup: ['email-filter-denylist'], }, }, { name: 'Email Domain Filtering (allowlist)', value: 'emailAllowlist', triggers: { PreSignup: ['email-filter-allowlist'], }, }, { name: 'Custom Auth Challenge Flow (basic scaffolding - not for production)', value: 'customAuthScaffolding', triggers: { DefineAuthChallenge: ['boilerplate-define-challenge'], CreateAuthChallenge: ['boilerplate-create-challenge'], VerifyAuthChallengeResponse: ['boilerplate-verify'], }, }, { name: 'Override ID Token Claims', value: 'alter-claims', triggers: { PreTokenGeneration: ['alter-claims'], }, }, ]; const additionalConfigMap = [ { name: 'No, I am done.', value: [], }, { name: 'Yes, I want to make some additional changes.', value: ['requiredAttributes', 'triggers'], }, ]; const disableOptionsOnEdit = () => { mfaOptions.find((i) => i.value === 'ON').disabled = true; }; const getAllMaps = (edit) => { if (edit) { disableOptionsOnEdit(); } return { aliasAttributes, coreAttributes, authSelectionMap, appClientReadAttributes, authProviders, mfaOptions, mfaMethods, emailRegistration, defaultPromptMap, booleanOptions, signInOptions, socialLoginOptions, hostedUIProviders, oAuthFlows, oAuthScopes, authorizeScopes, attributeProviderMap, updateFlowMap, capabilities, additionalConfigMap, }; }; module.exports = { aliasAttributes, coreAttributes, appClientReadAttributes, authSelectionMap, getAllMaps, authProviders, mfaOptions, mfaMethods, emailRegistration, defaultPromptMap, booleanOptions, signInOptions, socialLoginOptions, hostedUIProviders, authorizeScopes, oAuthFlows, oAuthScopes, messages, attributeProviderMap, updateFlowMap, capabilities, additionalConfigMap, }; //# sourceMappingURL=string-maps.js.map