放大Auth 构造
这个软件包将一个L3 CDK Constructure进行维系,它能够更快,更容易,安全地进行由Amazon Cognito提供动力的应用认证和授权. 放大 Auth 允许您用一个完全管理的用户目录快速设置安全认证流程 。 控制用户在您的移动和网络应用程序中可以访问哪些内容,并具有Amplify Auth的内置授权能力.
使用此构造的主要方法是用配置对象来引用. 您可以通过将单个设置作为属性传递到 AmplifyAuth 构造来声明您的认证 .
注:只列出一个实例 AmplifyAuth 构造可以在此时的CDK合成中被引用.
实例
带有默认设置的简单电子邮件登录
在此示例中, 您将创建一个简单的堆栈, 并启用电子邮件登录( 默认) 。 应用此功能将创建一个用户Pool、用户PoolClient、身份Pool以及认证/认证的IAM角色.
import { App, Stack } from 'aws-cdk-lib';
import { AmplifyAuth } from '@aws-amplify/auth-construct-alpha';
const app = new App();
const stack = new Stack(app, 'AuthStack');
new AmplifyAuth(stack, 'Auth');
使用定制多要素设置的电子邮件登录
在此示例中, 您将创建一个简单的堆栈, 并启用电子邮件登录, 以及定制的多因子认证( MFA) 设置 .
import { App, Stack } from 'aws-cdk-lib';
import { AmplifyAuth } from '@aws-amplify/auth-construct-alpha';
const app = new App();
const stack = new Stack(app, 'AuthStack');
new AmplifyAuth(stack, 'Auth', {
loginWith: {
email: true,
},
multifactor: {
mode: 'OPTIONAL',
sms: {
smsMessage: (code: string) => `Your verification code is ${code}`,
},
totp: false,
},
});
外部登录提供者自定义的电子邮件和电话登录
在此示例中, 您将创建一个包含电子邮件、 电话和外部登录提供者的堆栈 。 此外,您还可以自定义电子邮件和电话验证信息.
import { App, Stack, SecretValue } from 'aws-cdk-lib';
import { AmplifyAuth } from '@aws-amplify/auth-construct-alpha';
const app = new App();
const stack = new Stack(app, 'AuthStack');
new AmplifyAuth(stack, 'Auth', {
loginWith: {
email: {
verificationEmailStyle: 'CODE',
verificationEmailBody: (code: string) =>
`Your verification code is ${code}.`,
verificationEmailSubject: 'My custom email subject',
},
phone: {
verificationMessage: (code: string) =>
`Your verification code is ${code}.`,
},
externalProviders: {
google: {
clientId: 'googleClientId',
// see https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.SecretValue.html
clientSecret: SecretValue.unsafePlainText('googleClientSecret'),
},
facebook: {
clientId: 'facebookClientId',
clientSecret: 'facebookClientSecret',
},
signInWithApple: {
clientId: 'appleClientId',
keyId: 'appleKeyId',
privateKey: 'applePrivateKey',
teamId: 'appleTeamId',
},
loginWithAmazon: {
clientId: 'amazonClientId',
clientSecret: 'amazonClientSecret',
},
oidc: {
clientId: 'oidcClientId',
clientSecret: 'oidcClientSecret',
issuerUrl: 'oidcIssuerUrl',
name: 'oidcProviderName',
},
saml: {
name: 'samlProviderName',
metadata: {
metadataContent: 'samlMetadataContent',
metadataType: 'FILE',
},
},
},
},
});
自定义用户属性
在此示例中,您会自定义用户Pool中每个用户所需的一组属性 .
import { App, Stack } from 'aws-cdk-lib';
import { AmplifyAuth } from '@aws-amplify/auth-construct-alpha';
const app = new App();
const stack = new Stack(app, 'AuthStack');
new AmplifyAuth(stack, 'Auth', {
loginWith: { email: true },
userAttributes: {
address: {
mutable: false,
},
familyName: {
required: true,
},
},
});