当用户启动应用时,他们是未经身份验证的用户,他们会收到iOS应用中DeveloperAuthenticatedIdentityProvider类提供的unauthenticated cognito identity
。我可以在认知控制台中看到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
?或者我没有正确地打这个电话。我需要澄清一下如何映射/合并这些身份。
答案 0 :(得分:1)
我已在our forums上回答了您的问题,但您需要将unauth identitity id作为参数包含在GetOpenIdTokenForDeveloperIdentity调用中,否则Amazon Cognito将无法知道它应该关联您的Hibernate Enum Type mapping该标识的用户标识符。