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

AWS Cognito Node.JS用户身份验证返回未知问题

贺懿轩
2023-03-14

我在Node.JS中使用AWS Cognito。

我正在成功注册和验证用户,但身份验证返回“未知错误,fetch的响应主体未定义”

我使用节点获取模块随着亚马逊-认知-身份-js(设置为var AWSCognito在下面的代码)。用户未处于需要更改密码并已验证的状态。

其他人是否经历过这种情况?您是如何解决此问题的?感谢您提前给予指导。。。。

这是我的代码,我的完整模块作为iditawsutils在npm上:

exports.authCognitoUser = function(theUserPoolID, theClientID, userName, userPassword) {

    var authenticationData = {
        Username : userName,
        Password : userPassword
    };

    var authenticationDetails = new AWSCognito.AuthenticationDetails(authenticationData);

    var poolData = { UserPoolId : theUserPoolID,
        ClientId : theClientID
    };
    var userPool = new AWSCognito.CognitoUserPool(poolData);

    var userData = {
        Username : userName,
        Pool : userPool
    };

    console.log('authentication details: ',authenticationDetails);

    var cognitoUser = new AWSCognito.CognitoUser(userData);

    cognitoUser.authenticateUser(authenticationDetails, {
        onSuccess: function (result) {
            console.log('access token + ' + result.getAccessToken().getJwtToken());
            console.log('id token + ' + result.getIdToken().getJwtToken());
            console.log('refresh token + ' + result.getRefreshToken().getToken());
            return result;
        },
        onFailure: function(err) {
            console.log(err.message || JSON.stringify(err));
            return err;
        },

    });

}

//从控制台日志:

authentication details:  AuthenticationDetails {
  validationData: {},
  authParameters: {},
  username: 'thesmarterstuff',
  password: 'passW0rd!’ }

未知错误,获取的响应正文为:未定义

共有1个答案

宗冠宇
2023-03-14

在onFailure块中使用以下命令可查找有关错误的更多详细信息。

onFailure: function(err) {
        console.log(new Error().stack);
        console.log(err.message || JSON.stringify(err));
    },

如果在Client.js中的fetch行中发现错误,那么这可能是因为当前NodeJS SDK和大多数其他SDK不支持默认用户\u SRP\u AUTH。

您可以通过在Client.js中添加console.log进行检查

console.log(this.endpoint);
console.log(options);

登录到您的AWS帐户,并确保您已选中选项-启用基于应用的身份验证的用户名-密码(非SRP)流(用户\密码\身份验证)

然后,在代码中使用以下设置更新它。

cognitoUser.setAuthenticationFlowType('USER_PASSWORD_AUTH');
 类似资料:
  • 我正在尝试在反应式Spring Boot应用程序中配置Spring Security性,并包括依赖于新的Spring Security版本5.0.0的父项目。RC1: 我将我的Spring WebSecurity配置为使用自定义AuthenticationFilter来检索我的身份验证信息,以及使用我自己的提供者的自定义AuthenticationManager。 配置: ReactiveAuth

  • 我想在创建新用户时添加用户的DisplayName。当我尝试使用updateProfile方法时,它会发出以下警告 ///更新用户的配置文件数据。 @已弃用('将在版本2.0.0中删除。''改用updatePhotoURL和updateDisplayName。', 你怎么能避开这个?? flutter: User(显示名称:null,电子邮件:test1@gmail.com,emailVerifi

  • 这是关于Flutter Firebase认证插件。< br >我试图在创建新用户后发送验证电子邮件,但sendEmailVerification()在内部使用currentUser()。这在我看来像是一个bug,但为了以防万一,我向stackoverflow提出了一个问题。错误在Android和IOS上是一样的。< br > 前两行返回Firebase User。第三个返回null。第四,如果第三

  • 我的代码在这里:代码重新发布是因为我想问一个更直接的问题。如何在未经身份验证的用户和经过身份验证的用户之间切换?我的未经验证的文件似乎已缓存,我使用了以下方法: 在我剩下的api代码之前,它仍然不能工作。谢谢你的帮助 注意:我知道它不起作用,因为我在切换配置/凭据提供程序后立即使用lambda进行调用,并且只有授权用户才能调用此方法。 编辑@behrooziAWS答案: API代码: 完整错误:B

  • 我尝试postman使用用户名和密码连接到我的一个web服务,每次更改用户名时,即使用户名与我放在属性文件中的用户名不相同,请求也会被验证

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,