【问题标题】:disable verification code being sent on email verification on cognito禁用在 cognito 上的电子邮件验证时发送的验证码
【发布时间】:2021-11-22 00:00:35
【问题描述】:
userPool.signUp(
                userData.email,
                userData.password,
                attributeList,
                [],
                async (err, result) => {
                    if (err) {
                        failure(new HttpException(500, err.message));
                    }

                    let myCredentials = new AWS.CognitoIdentityCredentials({
                        IdentityPoolId: process.env.USER_POOL_ID!,
                    });
                    new AWS.Config({
                        credentials: myCredentials,
                        region: process.env.AWS_REGION,
                    });
                    let cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
                    cognitoIdentityServiceProvider.adminConfirmSignUp(
                        {
                            UserPoolId: process.env.USER_POOL_ID!,
                            Username: userData.email,
                        },
                        function (err, _data) {
                            if (err) {
                                failure(err);
                            }

                            cognitoIdentityServiceProvider.adminUpdateUserAttributes(
                                {
                                    UserPoolId: process.env.USER_POOL_ID!,
                                    Username: userData.email,
                                    UserAttributes: [
                                        {
                                            Name: 'email_verified',
                                            Value: 'true',
                                        },
                                    ],
                                },
                                () => {
                                    console.log('done');
                                }
                            );
                        }
                    );

                    if (result) {
                        const cognitoUser = result.user;

                        success({ user: cognitoUser, sub: result.userSub });
                    } else {
                        failure(
                            new HttpException(
                                500,
                                'Authentication server error, please try again later'
                            )
                        );
                    }
                }
            );

这是我注册用户并在 cognito 上自动验证该用户的代码。 问题是我有 2 组不同的用户角色,一个用户我正在自动确认,但另一个我希望他们使用 cognito 发送的代码手动确认。

现在对于已完成自动确认的一类用户,电子邮件和确认用户工作正常,但有一点需要注意。 验证码正在发送,即使它是由 admincognito 自动验证的。

如何在这组特定的代码上禁用此功能,以便其他用户角色可以确认通过电子邮件发送的代码

【问题讨论】:

    标签: node.js amazon-web-services amazon-cognito


    【解决方案1】:

    Cognito 在这方面并不是真正可配置的。在这种情况下,您的逃生舱口是简单记录的custom email sender lambda trigger。在通过 SES(或不通过 SES)发送电子邮件之前执行您想要的任何检查。

    【讨论】:

      【解决方案2】:

      我通过创建预注册 lambda 触发器解决了这个问题。并将角色作为用户属性传递给它,然后根据角色自动验证电子邮件和用户。

      【讨论】:

        猜你喜欢
        • 2019-10-07
        • 1970-01-01
        • 2018-03-02
        • 2021-12-20
        • 1970-01-01
        • 2018-02-16
        • 1970-01-01
        • 2018-06-02
        • 2019-06-24
        相关资源
        最近更新 更多