AWS CDK - 以编程方式将 IDP 设置为“已启用”状态
AWS CDK - Set IDPs to "enabled' state programmatically
我在我的用户池中成功创建了 Facebook 和 Google IDP,但是,它们在 运行 CDK deploy
之后处于 'disabled' 状态,我需要手动进入 UI 并单击 enabled
。一旦启用,IDP 就会按预期工作。
如何以编程方式将它们设置为 enabled
?
this.userPool = new UserPool(this, props.userPoolId, {
selfSignUpEnabled: true,
autoVerify: { email: true },
signInAliases: { email: true },
});
const googleIdp = new UserPoolIdentityProviderGoogle(
this,
"UserPoolIdentityProviderGoogle",
{
userPool: this.userPool,
// Removed
}
);
this.userPool.identityProviders.push(googleIdp);
const facebookIdp = new UserPoolIdentityProviderFacebook(
this,
"UserPoolIdentityProviderFacebook",
{
userPool: this.userPool,
// Removed
}
);
this.userPool.identityProviders.push(facebookIdp);
const userPoolClient = new UserPoolClient(this, props.userPoolClientId, {
userPool: this.userPool,
generateSecret: false,
supportedIdentityProviders: [
UserPoolClientIdentityProvider.GOOGLE,
UserPoolClientIdentityProvider.FACEBOOK,
],
});
userPoolClient.node.addDependency(googleIdp, facebookIdp)
我以为我正在使用 UserPoolClientIdentityProvider.GOOGLE
和 UserPoolClientIdentityProvider.FACEBOOK
行启用这些值,但我可能错过了什么?
通过调整事件发生的顺序解决:
userPoolClient.node.addDependency(googleIdp, facebookIdp)
this.userPool.identityProviders.push(googleIdp);
this.userPool.identityProviders.push(facebookIdp);
我实际上不确定为什么会这样,但我想您只需要确保 userPoolClient
具有正确的 IDP 资源,然后再将这些相同的 IDP 推入 userPool
。
如果有人有更好的解释,很想听听!
我在我的用户池中成功创建了 Facebook 和 Google IDP,但是,它们在 运行 CDK deploy
之后处于 'disabled' 状态,我需要手动进入 UI 并单击 enabled
。一旦启用,IDP 就会按预期工作。
如何以编程方式将它们设置为 enabled
?
this.userPool = new UserPool(this, props.userPoolId, {
selfSignUpEnabled: true,
autoVerify: { email: true },
signInAliases: { email: true },
});
const googleIdp = new UserPoolIdentityProviderGoogle(
this,
"UserPoolIdentityProviderGoogle",
{
userPool: this.userPool,
// Removed
}
);
this.userPool.identityProviders.push(googleIdp);
const facebookIdp = new UserPoolIdentityProviderFacebook(
this,
"UserPoolIdentityProviderFacebook",
{
userPool: this.userPool,
// Removed
}
);
this.userPool.identityProviders.push(facebookIdp);
const userPoolClient = new UserPoolClient(this, props.userPoolClientId, {
userPool: this.userPool,
generateSecret: false,
supportedIdentityProviders: [
UserPoolClientIdentityProvider.GOOGLE,
UserPoolClientIdentityProvider.FACEBOOK,
],
});
userPoolClient.node.addDependency(googleIdp, facebookIdp)
我以为我正在使用 UserPoolClientIdentityProvider.GOOGLE
和 UserPoolClientIdentityProvider.FACEBOOK
行启用这些值,但我可能错过了什么?
通过调整事件发生的顺序解决:
userPoolClient.node.addDependency(googleIdp, facebookIdp)
this.userPool.identityProviders.push(googleIdp);
this.userPool.identityProviders.push(facebookIdp);
我实际上不确定为什么会这样,但我想您只需要确保 userPoolClient
具有正确的 IDP 资源,然后再将这些相同的 IDP 推入 userPool
。
如果有人有更好的解释,很想听听!