为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.Manager
和AWS.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);
}
});