amazon-web-services - AWS API-Gateway 正在添加 AWSELB Cookie。一些时间

标签 amazon-web-services cookies aws-api-gateway

我正在尝试通过 AWS API Gateway 连接到 REST API。 REST API 需要身份验证并使用 session cookie。向 API 网关发送请求的客户端将在请求中包含 session cookie。当 API 网关连接到 REST API 时,我需要包含 cookie。然而,大多数情况下这都是有效的,但有时 session cookie 似乎因附加了 AWSELB cookie 而被损坏。

我已在 API 网关中创建了一个资源以及一个指向 REST API 的 GET 方法。在 GET 方法配置中,方法请求配置为读取“Cookie” header 。集成请求配置为将传入 Cookie header 的内容传递到 REST API,仍作为 Cookie。我相信此配置应该读取客户端发送的 cookie 并将其包含在对 REST API 的请求中。客户端仅发送 1 个 cookie。

大多数情况下,此方法有效,REST API 可以识别 cookie 并按预期响应。然而,有时它不起作用。 REST API 的 react 就像用户未经过身份验证一样 - 就好像 cookie 不存在或者 cookie 中的值错误(我认为这就是问题所在)。

当我查看 REST API 收到的成功请求的 cookie 内容(使用 PHP 的 $_COOKIE)时,我看到以下内容:

{"SESS":"1KDZI9w1-Gc"}

这对我来说很合适并且似乎有效。

在 REST API 拒绝请求的情况下(大约十分之一),cookie 的报告如下:

{"SESS":"1KDZI9w1-Gc, AWSELB=69436F3F12017A3019CD7D4088C8FE7CC9981879EC03298C21B00D11E135F6C2D5BB6EB9EF4CA2F57491F67AE917BF7D76679C66E3785516822E528C0314730437CFEBF999"}

看起来另一个 cookie,AWS Elastic Load Balancer cookie,AWSELB,已被附加到 session cookie 的末尾。 REST API 位于 ELB 后面。我在 ELB 上关闭了 session 粘性。

不知道为什么要添加AWSELB cookie,客户端对API网关的请求不包含cookie。

如果 API 网关或其他组件添加 AWSELB cookie,那么只要以正确的方式添加它,就不应该成为问题。它应该是一个单独的 cookie,而不是附加到 session cookie 的值中。

如果我查看 AWSELB cookie 存在时 REST API 收到的 header ,Cookie header 如下所示:

"SESS=1KDZI9w1-Gc, AWSELB=69436F3F12017A3019CD7D4088C8FE7CC9981879EC03298C21B00D11E135F6C2D5BB6EB9EF4CA2F57491F67AE917BF7D76679C66E3785516822E528C0314730437CFEBF999"

当发送多个cookie时,我认为它们应该用分号“;”分隔不是逗号“,”,就像正在发生的那样。

任何人都可以建议我如何解决这个问题吗?我想停止包含 AWSELB cookie 或确保以正确的方式包含它。

最佳答案

API Gateway 最近部署了针对此问题的修复程序。请引用论坛帖子here .

关于amazon-web-services - AWS API-Gateway 正在添加 AWSELB Cookie。一些时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33917625/

相关文章:

php - 在亚马逊 Linux 上安装 PHP 的 mongo 驱动程序时出错

amazon-web-services - ValidationException : Before you can proceed, 您必须启用服务相关角色才能授予 Amazon ES 访问您的 VPC 的权限

Codeigniter session 安全

windows - 从 google chrome userdir (>=20) 恢复 session cookie

amazon-web-services - 使用 AWS Api Gateway 进行 Api 组合

amazon-web-services - AWS-Lambda:无法添加另一个事件,无用的GenerateChangeSet失败消息

amazon-web-services - 管理多个 AWS 控制台登录

javascript - 跨源 AJAX 请求 'withCredentials' 如何确定要使用哪些 cookie?

node.js - Postman 调用 AWS API Gateway 触发 AWS lambda 函数不起作用

amazon-web-services - 我可以通过 aws api 网关发送静态响应吗?