为AWS Analytics和Cognito Sync使用相同的未经身份验证的身份

问题描述:

我正在开发一款应用程序,该应用程序同时使用AWS Mobile Analytics和Cognito Sync来处理用户数据。从查看我的网络日志,我可以看到移动分析的AMA.Manager与Cognito Sync进行相同的API调用,以请求来自AWS的有限临时凭证。为AWS Analytics和Cognito Sync使用相同的未经身份验证的身份

AWS.config.credentials.get()

我的问题是,如果它可能既new AMA.Manager()new AWS.CognitoSyncManager()要使用的最初要求从AWS.config.credentials.get()相同未经验证的身份?假设他们都使用相同的身份池。

解决了我自己的问题。只要AMA.ManagerAWS.CognitoSyncManager使用同一个凭证提供程序使用单个IdentityPoolId进行初始化,它就可以正常工作。我的代码示例如下:

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

var analytics = null; 
var syncClient = null; 
var options = { 
    appId : MOBILE_ANALYTICS_APP_ID 
}; 

AWS.config.credentials.get(function(err) { 

    if(!err){ 
     syncClient = new AWS.CognitoSyncManager(); 
     analytics = new AMA.Manager(options); 
    } 
});