aws-cdk-lib.aws_cognito.UserPoolDomainProps

interface UserPoolDomainProps

LanguageType name
.NETAmazon.CDK.AWS.Cognito.UserPoolDomainProps
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awscognito#UserPoolDomainProps
Javasoftware.amazon.awscdk.services.cognito.UserPoolDomainProps
Pythonaws_cdk.aws_cognito.UserPoolDomainProps
TypeScript (source)aws-cdk-lib » aws_cognito » UserPoolDomainProps

Props for UserPoolDomain construct.

Example

import { aws_certificatemanager as acm } from 'aws-cdk-lib';

declare const vpc: ec2.Vpc;
declare const certificate: acm.Certificate;

const lb = new elbv2.ApplicationLoadBalancer(this, 'LB', {
  vpc,
  internetFacing: true,
});

const userPool = new cognito.UserPool(this, 'UserPool');
const userPoolClient = new cognito.UserPoolClient(this, 'Client', {
  userPool,

  // Required minimal configuration for use with an ELB
  generateSecret: true,
  authFlows: {
    userPassword: true,
  },
  oAuth: {
    flows: {
      authorizationCodeGrant: true,
    },
    scopes: [cognito.OAuthScope.EMAIL],
    callbackUrls: [
      `https://${lb.loadBalancerDnsName}/oauth2/idpresponse`,
    ],
  },
});
const cfnClient = userPoolClient.node.defaultChild as cognito.CfnUserPoolClient;
cfnClient.addPropertyOverride('RefreshTokenValidity', 1);
cfnClient.addPropertyOverride('SupportedIdentityProviders', ['COGNITO']);

const userPoolDomain = new cognito.UserPoolDomain(this, 'Domain', {
  userPool,
  cognitoDomain: {
    domainPrefix: 'test-cdk-prefix',
  },
});

lb.addListener('Listener', {
  port: 443,
  certificates: [certificate],
  defaultAction: new actions.AuthenticateCognitoAction({
    userPool,
    userPoolClient,
    userPoolDomain,
    next: elbv2.ListenerAction.fixedResponse(200, {
      contentType: 'text/plain',
      messageBody: 'Authenticated',
    }),
  }),
});

new CfnOutput(this, 'DNS', {
  value: lb.loadBalancerDnsName,
});

Properties

NameTypeDescription
userPoolIUserPoolThe user pool to which this domain should be associated.
cognitoDomain?CognitoDomainOptionsAssociate a cognito prefix domain with your user pool Either customDomain or cognitoDomain must be specified.
customDomain?CustomDomainOptionsAssociate a custom domain with your user pool Either customDomain or cognitoDomain must be specified.

userPool

Type: IUserPool

The user pool to which this domain should be associated.


cognitoDomain?

Type: CognitoDomainOptions (optional, default: not set if customDomain is specified, otherwise, throws an error.)

Associate a cognito prefix domain with your user pool Either customDomain or cognitoDomain must be specified.

See also: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-assign-domain-prefix.html


customDomain?

Type: CustomDomainOptions (optional, default: not set if cognitoDomain is specified, otherwise, throws an error.)

Associate a custom domain with your user pool Either customDomain or cognitoDomain must be specified.

See also: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-add-custom-domain.html