Amazon web services Alexa帐户与Cognito链接

Amazon web services Alexa帐户与Cognito链接,amazon-web-services,aws-lambda,aws-sdk,alexa-skills-kit,aws-cognito,Amazon Web Services,Aws Lambda,Aws Sdk,Alexa Skills Kit,Aws Cognito,你会认为亚马逊的两款产品会很好地结合在一起。你也会认为亚马逊会有关于他们服务的适当文档。两者都大错特错 我正在使用与Alexa的帐户链接,并使用AWS Cognito作为我的oauth提供者。我能够很好地成功地链接我的帐户,并且在每次后续的alexa调用中,我都会得到一个返回给我的访问令牌。现在怎么办 我需要能够从alexa lambda功能访问其他AWS服务,如dynamo、lambda和iot。我想这很简单,就像这样: var accessToken = event.session.user

你会认为亚马逊的两款产品会很好地结合在一起。你也会认为亚马逊会有关于他们服务的适当文档。两者都大错特错

我正在使用与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);
    }
});

但当然不是那么简单。有人能帮我吗?

您需要为IAM下创建的“角色”分配适当的“策略”。所有AWS服务都使用基于策略的访问权限,这些权限必须与IAM角色明确连接,该角色才能代表该用户角色访问/运行基础服务


总之,您需要从IAM分配与“IOT”、“DynamoDB”、“Lambda”等相关的策略。

遇到了同样的问题。你找到解决方案了吗?我需要一些帮助,我想通过Cognito用户池登录skill,知道怎么可能吗?这可能会有帮助: