Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何将Cognito令牌传递到AmazonAPI网关?_Amazon Web Services_Amazon Cognito - Fatal编程技术网

Amazon web services 如何将Cognito令牌传递到AmazonAPI网关?

Amazon web services 如何将Cognito令牌传递到AmazonAPI网关?,amazon-web-services,amazon-cognito,Amazon Web Services,Amazon Cognito,我正在开发基于AmazonAPI网关的web应用程序。现在我创建了Facebook登录,并成功登录到该网站。但当我调用另一个API时,一切都消失了。我认为每次调用API时都应该传递Cognito令牌。我说得对吗 如果是,如何将Cognito令牌传递给API?像头球?还是另一种方式 谢谢,您正在使用来自cognito identity的“基本Authflow”,这意味着您需要通过调用STS的“AssumeRoleWithWebIdentity”为您的用户获取凭据。以下是一些帮助文档: 拥有凭据后,

我正在开发基于AmazonAPI网关的web应用程序。现在我创建了Facebook登录,并成功登录到该网站。但当我调用另一个API时,一切都消失了。我认为每次调用API时都应该传递Cognito令牌。我说得对吗

如果是,如何将Cognito令牌传递给API?像头球?还是另一种方式

谢谢,

您正在使用来自cognito identity的“基本Authflow”,这意味着您需要通过调用STS的“AssumeRoleWithWebIdentity”为您的用户获取凭据。以下是一些帮助文档:

拥有凭据后,可以实例化API网关客户端:

var client = apigClientFactory.newClient({ 
    accessKey: ACCESS_KEY, 
    secretKey: SECRET_KEY, 
    sessionToken: SESSION_TOKEN });
密钥和令牌来自“AssumeRoleWithWebIdentity”调用的结果

如果已正确配置IAM角色和授权,则应该能够访问API

以下是描述如何配置角色和授权的文档:


此外,下面是如何启用CORS-

您所说的“一切都消失了”是什么意思?关于API网关API中的调用方,您需要什么信息?您能否提供一些示例代码和收到的错误消息?@ScottWilleke my login page calls/doLogin API,然后我从Cognito获得令牌和ID。之后,我转到profile之类的受限页面,它调用/showProfile API。现在/showProfile不知道我是否登录。所以给了我一个错误“缺少身份验证令牌”。我认为我应该向每个API网关调用发送我的令牌和ID,但是如何发送它们呢?标题像“亚马逊Cognito代币”?还是另一种方式?@user2882027我不清楚你的确切设置。/doLogin是否从getOpenIdToken返回openId令牌?您是否在/showProfile API上设置了AWS_IAM授权?如果是,您使用哪些凭据从浏览器调用它?来自sts的凭据使用Cognito OpenId令牌扮演角色?@MarkMercurio yes,/doLogin从getOpenIdToken返回OpenId令牌/doLogin授权为None,/showProfile授权为AWS\u IAM。如果我调用/doLogin没有错误,但是/showProfile给出错误“缺少身份验证令牌”。如何使用凭据调用/showProfile?我应该在我的web界面的JS中使用apigClientFactory吗?您以前使用了什么?如何使用AJAX请求使用受保护的网关api,需要哪些标头?如何生成和设置它们?这是一篇关于如何使用ajax调用受保护网关的博文,在这篇博文中,海报使用了x-api-key头。就像JWT令牌一样,如何生成APIKEY,或者如何将密钥和令牌从AssumeRoleWithWebIdentity设置为ajax请求@User2882027API网关的API密钥与AmazonCognito生成的JWT完全不同。如果要使用AWS凭据保护API,请使用Mark提供的说明;如果要使用API密钥,请咨询。如果您正在尝试做其他事情,请尝试编辑您的文章,并提供您试图完成的任务的更多详细信息。由于某些原因,我无法使用从AssumeRoleWithWebIdentity返回的密钥和令牌调用apigate way。我有一个Cognito_Auth_角色,它拥有所有正确的策略,但我得到了内部服务器错误。如果我向这个角色添加AdminAccess,那么它就可以工作了。