当前位置: 首页 > 知识库问答 >
问题:

amazon cognito identity js-无法通过电子邮件验证用户

叶元凯
2023-03-14

如果我遵循http://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html 页面上的“用例4”示例https://github.com/aws/amazon-cognito-identity-js/blob/master/README.md 使用用户名的页面,示例有效。

我试图验证用户使用他们的电子邮件属性,而不是他们的用户名。我已经将电子邮件属性标记为我的用户池中的别名。

当我在“验证用户”示例中使用电子邮件代替用户名时,会出现以下错误:ResourceNotFoundException:username/client-id组合未找到。我在下面提供了我的代码示例。

如何使用“Amazon Cognito Identity SDK for JavaScript”通过电子邮件地址对用户进行身份验证(https://github.com/aws/amazon-cognito-identity-js)?

代码示例

function authenticateUserViaEmail() {

log("authenticateUserViaEmail called");

// Initialize the Amazon Cognito credentials provider
AWS.config.region = 'us-east-1'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: identityPoolId,
});

AWSCognito.config.region = 'us-east-1';
AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: identityPoolId,
});

var authenticationData = {
    Username : document.getElementById("email").value,
    Password : document.getElementById("password").value
};

log("using: " + JSON.stringify(authenticationData));

var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : userPoolId,
    ClientId : clientId
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
    Username : document.getElementById("email").value,
    Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);

log("About to call authenticateUser...");

cognitoUser.authenticateUser(authenticationDetails, {
    onSuccess: function (result) {
        log('Access token: ' + result.getAccessToken().getJwtToken());
    },
    onFailure: function(err) {
        log(err);
        console.error(err);
    },
});            
}

共有1个答案

颜君浩
2023-03-14

你确认你的电子邮件地址了吗?如果您没有确认您的电子邮件地址,它不能作为登录的别名。

 类似资料:
  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

  • 我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?

  • 问题内容: 我有一个用于用户的Mongoose模式(UserSchema),我想验证电子邮件是否具有正确的语法。我当前使用的验证如下: 但是,这仅检查字段是否为空,而不检查语法。 是否已经存在一些我可以重用的东西,或者我必须提出自己的方法并在validate函数中调用它? 问题答案: 您可以使用正则表达式。 我过去曾经使用过。

  • 我使用SendInBlue Java Api发送电子邮件,我在scala中编写了以下代码: 但我得到了这个错误:{“代码”:“失败”,“消息”:“需要有效的”至“电子邮件地址”,“数据”:[]}

  • 我正在使用Cognito进行用户管理,除了电子邮件验证过程之外,一切似乎都很好。 我想建立类似于所有其他网站的用户旅程:1)填写用户详细信息的登记表2)接收带有电子邮件验证链接的电子邮件3)通过点击链接验证电子邮件地址 到目前为止,我只能通过让用户手动输入校验码来验证电子邮件。这有点不寻常。一些用户发现点击链接更容易。 在“消息定制”页面上,可以使用“链接”进行消息验证。但它正在使用“亚马逊认知域

  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email