未经身份验证的身份未映射到开发人员身份验证的身份

Unauthenticated identites not mapping to Developer Authenticated Identity

当用户启动应用程序时,他们是未经身份验证的用户,他们会收到 iOS 应用程序中的 DeveloperAuthenticatedIdentityProvider class 提供的 unauthenticated cognito identity。我可以在 Cognito 控制台中看到 unauthenticated cognito identity。但是,当他们登录时,我使用以下登录映射调用我的 nodejs 后端:

{
   DevAuthIdentityLogin:<username>
}

并使用此后端代码:

getCognitoIdentity: function(logins, cognitoId, error) {
        var cognitoidentity = new AWS.CognitoIdentity(awsOptions);

        var params = {
            IdentityPoolId: identityPool,
            Logins: logins,
            TokenDuration: (60 * 5)
        };

        cognitoidentity.getOpenIdTokenForDeveloperIdentity(params, function(err, data) {
            if (err) {
                console.log(err, err.stack);
                error(err)
            } else {
                console.log(data);           // successful response
                cognitoId(data);
            }
        });
    }

它使用 developer authenticated identity 创建了一个新的身份 ID,我可以在 cognito 控制台中看到它,但是旧的未经身份验证的身份没有映射到这个新的开发人员身份验证身份。

调用后端关联两者时,是否需要在登录映射中提供 unauthenticated identity id?或者我没有正确拨打这个电话。我需要一些关于如何 map/merge 这些身份的说明。

我已经在 our forums, but you need to include the unauth identitity id as a parameter to the GetOpenIdTokenForDeveloperIdentity 电话中回答了您的问题,否则 Amazon Cognito 将无法知道它应该将您的用户标识符与该身份相关联。