node.js - 使用 Lambda 代理的 API 网关设置 Cookie

标签 node.js aws-lambda aws-api-gateway

我正在尝试从 Lambda 设置一个 cookie,该 cookie 通过 API 网关,但它似乎没有被发送。

这是我尝试发送的内容:

{
  body: JSON.stringify({}),
  headers: {
     'Access-Control-Allow-Origin': '*',
     'Access-Control-Allow-Headers': '*',
     'Access-Control-Allow-Credentials': true,
     'test': 'test',
     'Set-Cookie': 'name=test',
  }
}

除了 cookie 之外,所有其他 header 都显示在 Chrome 中的响应 header 下。我尝试将 Set-Cookie 添加到 200 的方法响应中,但这没有什么区别。

有什么想法可以让它发挥作用吗?谢谢!

最佳答案

您的代码看起来不错,因为以下示例可以正常设置 cookie

设置cookie:

 {
  "statusCode": 200,
  "body": "testing set-cookie headers",
  "headers": {
    "X-Test-Header": "vaquarkhan experiment",
    "Set-Cookie": "cookie2=vaquarkhan",
    "Content-Type": "text/plain"
  }
}

   Set-Cookie header to integration.response.header.Set-Cookie

您可以使用控制台设置厨师并检查开发人员工具

步骤:在 Api gateway Method 页面上,选择 Integration Response。在默认 200 HTTP 状态的 header 映射部分下,选择铅笔图标以编辑“Set-Cookie” header 。在映射值部分中,输入:

integration.response.body.Cookie

enter image description here

现在下一步选择集成响应。在默认 200 HTTP 状态的 header 映射部分下,选择铅笔图标以编辑“Set-Cookie” header 。在映射值部分。

enter image description here

现在调试 - 您可以使用以下链接并分享在 cookie 的 devtools 中可以看到的内容吗 -https://developers.google.com/web/tools/chrome-devtools/storage/cookies

关于node.js - 使用 Lambda 代理的 API 网关设置 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57529079/

相关文章:

python - 从 Python 在 kubernetes 集群上提交 Spark (2.3)

java - AWS 容器重用和同步处理程序函数之外的资源

amazon-web-services - 使用 cli 更新 apigateway 部署

linux - 在node.js中,使用多个域名和一个ip地址的ssl

amazon-web-services - AWS Lambda 函数写入 DynamoDB

node.js - 在做其他事情之前,如何等待循环中的 promise 完成?

amazon-web-services - 具有 OpenAPI swagger 资源定义的 terraform 中的 AWS API Gateway

amazon-web-services - 没有 URL 重定向的 API 网关代理

Javascript 将一个数组对象分配给另一个数组

javascript - 在 Passport.js 中验证多个模型