1

你會認爲亞馬遜的兩款產品會很好地結合在一起。你也會認爲亞馬遜會有適當的文件記錄他們的服務。兩者都是可怕的錯誤。Alexa帳號與Cognito鏈接

我正在使用帳戶與Alexa鏈接並使用AWS Cognito作爲我的oauth提供程序。我能夠成功鏈接我的帳戶,並且隨後的每個alexa調用都會將訪問令牌返回給我。怎麼辦?

我需要能夠從我的alexa lambda函數訪問其他AWS服務,例如dynamo,lambda和iot。以爲會因爲這樣的事情一樣容易:

var accessToken = event.session.user.accessToken; 
var params = { 
    IdentityPoolId: "{identity_pool_id}", 
    Logins : { 
     'cognito-idp.us-east-1.amazonaws.com/{user_pool_id}' : accessToken 
    } 
}; 

AWS.config.region = 'us-east-1'; 
AWS.config.credentials = new AWS.CognitoIdentityCredentials(params); 
    AWS.config.credentials.get(function(err) { 
    if (err) { 
     console.log(err); 
    } else { 
     console.log('success'); 
     console.log("Cognito Identity Id: " + AWS.config.credentials.identityId); 
    } 
}); 

但是,當然,它不是那麼簡單。誰能幫我嗎?

+0

遇到這種相同的問題。你有沒有找到解決方案? – Panda

回答

0

您需要爲IAM下創建的「角色」分配適當的「策略」。所有AWS服務都基於策略的訪問權限,並且必須使用IAM角色明確附加這些角色,以便該角色能夠代表該用戶角色訪問/運行底層服務。

總之,你需要從分配政策IAM與「物聯網」,「DynamoDB」,「拉姆達」等