Skip to content
v2.274.0

UserPoolDomainProps Struct ​

Props for UserPoolDomain construct.

Example ​

ts
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 ​

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

Default: not set if customDomain is specified, otherwise, throws an error.

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

Default: not set if cognitoDomain is specified, otherwise, throws an error.

managedLoginVersionoptionalManagedLoginVersionmanaged_login_versionoptionalManagedLoginVersionmanagedLoginVersionoptionalManagedLoginVersionManagedLoginVersionoptionalManagedLoginVersionManagedLoginVersionoptionalManagedLoginVersion#
A version that indicates the state of managed login.

Default: undefined - Cognito default setting is ManagedLoginVersion.CLASSIC_HOSTED_UI

This choice applies to all app clients that host services at the domain.

userPoolIUserPoolRefuser_poolIUserPoolRefuserPoolIUserPoolRefUserPoolIUserPoolRefUserPoolIUserPoolRefrequired#
The user pool to which this domain should be associated.