@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
51 lines • 8.02 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserIdentity = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
/*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0 */
const monorepo_1 = require("../monorepo");
const aws_cognito_identitypool_alpha_1 = require("@aws-cdk/aws-cognito-identitypool-alpha");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const aws_cognito_1 = require("aws-cdk-lib/aws-cognito");
const constructs_1 = require("constructs");
const userpool_with_mfa_1 = require("./userpool-with-mfa");
const WEB_CLIENT_ID = "WebClient";
/**
* Creates a UserPool and Identity Pool with sane defaults configured intended for usage from a web client.
*/
class UserIdentity extends constructs_1.Construct {
constructor(scope, id, props) {
super(scope, id);
(0, monorepo_1.addMetric)(scope, "identity");
// Unless explicitly stated, created a default Cognito User Pool and Web Client.
this.userPool = !props?.userPool
? new userpool_with_mfa_1.UserPoolWithMfa(this, "UserPool", props?.allowSignup ? { selfSignUpEnabled: true } : undefined)
: props.userPool;
this.identityPool = new aws_cognito_identitypool_alpha_1.IdentityPool(this, "IdentityPool", props?.identityPoolOptions);
const existingClient = this.userPool.node.children.find((e) => e.node.id === WEB_CLIENT_ID && e instanceof aws_cognito_1.UserPoolClient);
this.userPoolClient =
existingClient ??
this.userPool.addClient(WEB_CLIENT_ID, {
authFlows: {
userPassword: true,
userSrp: true,
},
});
this.identityPool.addUserPoolAuthentication(new aws_cognito_identitypool_alpha_1.UserPoolAuthenticationProvider({
userPool: this.userPool,
userPoolClient: this.userPoolClient,
}));
new aws_cdk_lib_1.CfnOutput(this, `${id}-UserPoolId`, {
value: this.userPool.userPoolId,
});
new aws_cdk_lib_1.CfnOutput(this, `${id}-IdentityPoolId`, {
value: this.identityPool.identityPoolId,
});
}
}
exports.UserIdentity = UserIdentity;
_a = JSII_RTTI_SYMBOL_1;
UserIdentity[_a] = { fqn: "@aws/pdk.identity.UserIdentity", version: "0.26.14" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1pZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtzQ0FDc0M7QUFDdEMsNENBQTBDO0FBQzFDLDRGQUlpRDtBQUNqRCw2Q0FBd0M7QUFDeEMseURBQW1FO0FBQ25FLDJDQUF1QztBQUN2QywyREFBc0Q7QUFFdEQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBMEJsQzs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBS3pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFBLG9CQUFTLEVBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdCLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVE7WUFDOUIsQ0FBQyxDQUFDLElBQUksbUNBQWUsQ0FDakIsSUFBSSxFQUNKLFVBQVUsRUFDVixLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzdEO1lBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFFbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZDQUFZLENBQ2xDLElBQUksRUFDSixjQUFjLEVBQ2QsS0FBSyxFQUFFLG1CQUFtQixDQUMzQixDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDckQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLGFBQWEsSUFBSSxDQUFDLFlBQVksNEJBQWMsQ0FDcEMsQ0FBQztRQUVoQyxJQUFJLENBQUMsY0FBYztZQUNqQixjQUFjO2dCQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtvQkFDckMsU0FBUyxFQUFFO3dCQUNULFlBQVksRUFBRSxJQUFJO3dCQUNsQixPQUFPLEVBQUUsSUFBSTtxQkFDZDtpQkFDRixDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixDQUN6QyxJQUFJLCtEQUE4QixDQUFDO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWU7U0FDckMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUU7WUFDdEMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVTtTQUNoQyxDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTtZQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcERILG9DQXFEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBDb3B5cmlnaHQgW0FtYXpvbi5jb21dKGh0dHA6Ly9hbWF6b24uY29tLyksIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCAqL1xuaW1wb3J0IHsgYWRkTWV0cmljIH0gZnJvbSBcIkBhd3MvbW9ub3JlcG9cIjtcbmltcG9ydCB7XG4gIElkZW50aXR5UG9vbCxcbiAgSWRlbnRpdHlQb29sUHJvcHMsXG4gIFVzZXJQb29sQXV0aGVudGljYXRpb25Qcm92aWRlcixcbn0gZnJvbSBcIkBhd3MtY2RrL2F3cy1jb2duaXRvLWlkZW50aXR5cG9vbC1hbHBoYVwiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBVc2VyUG9vbCwgVXNlclBvb2xDbGllbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBVc2VyUG9vbFdpdGhNZmEgfSBmcm9tIFwiLi91c2VycG9vbC13aXRoLW1mYVwiO1xuXG5jb25zdCBXRUJfQ0xJRU5UX0lEID0gXCJXZWJDbGllbnRcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHdoaWNoIGNvbmZpZ3VyZXMgdGhlIElkZW50aXR5IFBvb2wuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlcklkZW50aXR5UHJvcHMge1xuICAvKipcbiAgICogQWxsb3cgc2VsZiBzaWduIHVwXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93U2lnbnVwPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBDb2duaXRvIFVzZXJQb29sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgdXNlcnBvb2wgd2l0aCBtZmEgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2w/OiBVc2VyUG9vbDtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIElkZW50aXR5IFBvb2wuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eVBvb2xPcHRpb25zPzogSWRlbnRpdHlQb29sUHJvcHM7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFVzZXJQb29sIGFuZCBJZGVudGl0eSBQb29sIHdpdGggc2FuZSBkZWZhdWx0cyBjb25maWd1cmVkIGludGVuZGVkIGZvciB1c2FnZSBmcm9tIGEgd2ViIGNsaWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJJZGVudGl0eSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBpZGVudGl0eVBvb2w6IElkZW50aXR5UG9vbDtcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sOiBVc2VyUG9vbDtcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50OiBVc2VyUG9vbENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IFVzZXJJZGVudGl0eVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGFkZE1ldHJpYyhzY29wZSwgXCJpZGVudGl0eVwiKTtcblxuICAgIC8vIFVubGVzcyBleHBsaWNpdGx5IHN0YXRlZCwgY3JlYXRlZCBhIGRlZmF1bHQgQ29nbml0byBVc2VyIFBvb2wgYW5kIFdlYiBDbGllbnQuXG4gICAgdGhpcy51c2VyUG9vbCA9ICFwcm9wcz8udXNlclBvb2xcbiAgICAgID8gbmV3IFVzZXJQb29sV2l0aE1mYShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIFwiVXNlclBvb2xcIixcbiAgICAgICAgICBwcm9wcz8uYWxsb3dTaWdudXAgPyB7IHNlbGZTaWduVXBFbmFibGVkOiB0cnVlIH0gOiB1bmRlZmluZWRcbiAgICAgICAgKVxuICAgICAgOiBwcm9wcy51c2VyUG9vbDtcblxuICAgIHRoaXMuaWRlbnRpdHlQb29sID0gbmV3IElkZW50aXR5UG9vbChcbiAgICAgIHRoaXMsXG4gICAgICBcIklkZW50aXR5UG9vbFwiLFxuICAgICAgcHJvcHM/LmlkZW50aXR5UG9vbE9wdGlvbnNcbiAgICApO1xuXG4gICAgY29uc3QgZXhpc3RpbmdDbGllbnQgPSB0aGlzLnVzZXJQb29sLm5vZGUuY2hpbGRyZW4uZmluZChcbiAgICAgIChlKSA9PiBlLm5vZGUuaWQgPT09IFdFQl9DTElFTlRfSUQgJiYgZSBpbnN0YW5jZW9mIFVzZXJQb29sQ2xpZW50XG4gICAgKSBhcyBVc2VyUG9vbENsaWVudCB8IHVuZGVmaW5lZDtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPVxuICAgICAgZXhpc3RpbmdDbGllbnQgPz9cbiAgICAgIHRoaXMudXNlclBvb2wuYWRkQ2xpZW50KFdFQl9DTElFTlRfSUQsIHtcbiAgICAgICAgYXV0aEZsb3dzOiB7XG4gICAgICAgICAgdXNlclBhc3N3b3JkOiB0cnVlLFxuICAgICAgICAgIHVzZXJTcnA6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgIHRoaXMuaWRlbnRpdHlQb29sLmFkZFVzZXJQb29sQXV0aGVudGljYXRpb24oXG4gICAgICBuZXcgVXNlclBvb2xBdXRoZW50aWNhdGlvblByb3ZpZGVyKHtcbiAgICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICAgIHVzZXJQb29sQ2xpZW50OiB0aGlzLnVzZXJQb29sQ2xpZW50ISxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9LVVzZXJQb29sSWRgLCB7XG4gICAgICB2YWx1ZTogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH0tSWRlbnRpdHlQb29sSWRgLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZGVudGl0eVBvb2wuaWRlbnRpdHlQb29sSWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==