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