在 AWS lambda Node JS 的 http 响应标头中设置 Cookie

2024-04-08

我启用了 Lambda 代理集成,并将响应标头设置为 Lambda 输出和 API 网关的一部分,API 网关会将它们作为 HTTP 响应的一部分返回给客户端。

示例代码:

callback(null, {
    "statusCode": 302,
    "Location" : "https://somewebsite.com"
    "headers": { "headerName": "headerValue", ... },
    "body": "..."
});

我需要在标头中发送 3 个 cookie。我试过。但是,失败了:

callback(null, {
    "statusCode": 302,
    "Location" : "https://somewebsite.com"
    "headers": { "Set-Cookie": [cookie1String, cookie2String, cookie3String] },
    "body": "..."
});

[编辑] 我连接了 cookie 并作为响应传入,客户端获取了 cookie。但是当客户端调用“location”中的目标时,请求的标头中没有cookie。

callback(null, {
    "statusCode": 302,
    "Location" : "https://somewebsite.com"
    "headers": { "Set-Cookie": c1=cookie1String;c2=cookie2String; c3=cookie3String] },
    "body": "..."
});

请帮助将这 3 个 cookie 发送给我的客户。


Use multiValueHeaders代替headers.

    const response = {
        isBase64Encoded: true,
        statusCode: 200,
        multiValueHeaders : {"Set-Cookie": [`language=${language}`, `theme=${theme}`]},
        body: JSON.stringify('User profile set successfully')
    };
    callback(null, response);

如果您需要它变得更聪明,请考虑类似的事情

function createHeaders(headers) {
  const defaultHeaders = {
    'Access-Control-Allow-Origin': '*',
  };
  const allHeaders = Object.assign({}, defaultHeaders, headers);
  const singleValueHeaders = {};
  const multiValueHeaders = {};
  Object.entries(allHeaders).forEach(([key, value]) => {
    const targetHeaders = Array.isArray(value) ? multiValueHeaders : singleValueHeaders;
    Object.assign(targetHeaders, { [key]: value });
  });

  return {
    headers: singleValueHeaders,
    multiValueHeaders,
  };
}

然后在回调函数中使用它。

callback(null, {
  statusCode: status || 200,
  body: JSON.stringify(body),
  ...createHeaders({ 'Set-Cookie': cookie }),
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AWS lambda Node JS 的 http 响应标头中设置 Cookie 的相关文章

  • 使用 Sequelize 计算关联条目数

    我有两张桌子 locations and sensors 每个条目在sensors有一个外键指向locations 使用 Sequelize 如何获取所有条目locations以及条目总数sensors与每个条目相关联locations R
  • ElasticCloud 的 ElasticSearch 身份验证错误?

    我刚刚在 ElasticCloud 上设置了一个新的 ElasticSearch 集群 我正在尝试遵循帮助文档 https cloud elastic co help 它说您可以按如下方式发布文档 curl https
  • Nodejs Base64 中的读取文件

    我正在尝试从客户端读取以 base64 编码的图像 如何使用nodejs进行阅读 My code add to buffer base64 image var encondedImage new Buffer image name base
  • AWS ALB 截断 HTTP 响应

    我有一个带有目标组的 ALB 和运行 PHP API 的 ECS 集群 我正在尝试查询 API 以获得 CSV 响应 但如果请求通过 ALB 我会得到被截断的结果 当我通过 SSH 连接到运行集群的 EC2 实例并尝试手动运行curl 通过
  • ElectronJS 捕获屏幕质量低

    我正在使用 ElectronJS 测试屏幕捕获 我可以捕获屏幕 但捕获的视频质量低于原始视频 操作系统 Linux Mint 20 电子版本 11 1 0 这是我的代码 我选择我的屏幕 然后使用以下命令在电子应用程序中显示捕获的屏幕vide
  • 有没有办法让 npm install (命令)在代理后面工作?

    阅读有关代理变量的信息 npmrc文件 但它不起作用 尽量避免手动下载所有需要的包并安装 我这样解决了这个问题 我运行这个命令 npm config set strict ssl false 然后将 npm 设置为使用 http 而不是 h
  • 使用 LINQ 或 Lambda 从列表中删除实例?

    现在 我进入了一个阶段 将所有数据作为缓存 对象 中的列表获取 接下来要做的就是从列表中删除一些实例 通常 我会像这样删除 List
  • 使用sequelize 根据express.js 中的路由更改数据库连接

    是否可以更改数据库连接sequelize取决于路线 例如 用户可以访问网站中的 2 个不同安装 example com foo example com bar 登录后用户将被重定向到example com foo为了获得他们的所有任务foo
  • 在 ExpressJS 中通过管道传送远程文件

    我想读取远程图像并显示它 我可以保存文件 但无法正确显示代码 理想情况下 我只想直接传递文件而不进行处理 不确定是否需要 tmp 文件步骤 此代码不显示任何内容 没有错误 我也尝试了 res pipe response var url ht
  • Sam 在 intellij 中构建:错误:JavaMavenWorkflow:MavenBuild - 'utf-8' 编解码器无法解码位置 150889 中的字节 0xbb:无效的起始字节

    我正在使用带有 Spring Boot 应用程序的 aws 无服务器架构 当我在 intellij 中使用 sam build 构建项目时 出现以下错误 Building codeuri runtime java11 metadata fu
  • 嵌套对象的 AJV 模式验证

    函数返回的对象看起来像这样 answer vehicle type 1 message Car model VW color red 答案 对象始终存在 其他字段基于 vehicle type E g 如果vehicle type 1 则有
  • 托管 React 应用程序和 Express 服务器 cpanel

    我是托管新手 如果有人可以非常详细地解释 这将对我有很大帮助 我有以下问题 我有前端使用react app和后端使用expressjs and mysql 我的计算机中有一个可以运行的简单应用程序 我使用本地主机启动后端和前端 它们工作完美
  • 为什么 Node.js 命名为 Node.js? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我只是好奇为什么 Node js 这么命名 我搜索了他们的网站和常见问题解答 但没有任何内容可以帮助我理解为什么它被命名为 Node js 官方名称其
  • 从活动目录读取objectGUID

    我正在尝试使用 node js 从 AD 获取信息 我试过了activedirectory and ldapauth fork一般来说 代码可以工作 但如果我需要一些octetstring数据如objectGUID 我在对象中看到了垃圾字符
  • 以非 root 用户身份使用 AWS CodeBuild

    有没有办法掉root用户开启AWS 代码构建 我们正在构建一个 Yocto 项目 如果我们是 root Bitbake 健全性检查 该项目将在 CodeBuild 上失败 我们绝望的做法也不起作用 build commands chmod
  • 创建 CloudFront Distribution 时出现 Crypp CloudFormation 失败

    我设置了一个 CloudFormation 模板来跟踪 CloudFront 分发等 设置完毕后 我创建了一个AWS CertificateManager Certificate and an AWS CloudFront Distribu
  • 节点未被识别为内部或外部命令,但位于 PATH 中

    尽管我遵循了以下建议 使用phonegap cordova时 node 不被识别为内部或外部命令 可操作程序或批处理文件 https stackoverflow com questions 23412938 node is not reco
  • 无法安装js-bson

    我正在使用Windows 7 64位 尝试安装bson作为mongodb的依赖项 我收到此错误 npm WARN package json email protected cdn cgi l email protection No READ
  • Express js 错误:“express 已弃用 res.sendfile:请改用 res.sendFile”

    设置路径的正确方法是什么 在我的应用程序中 我使用此代码设置发送文件的路径 app get function req res get put post delete res sendfile dirname client views ind
  • 从 Flask 中的 S3 返回 PDF

    我正在尝试在 Flask 应用程序的浏览器中返回 PDF 我使用 AWS S3 来存储文件 并使用 boto3 作为与 S3 交互的 SDK 到目前为止我的代码是 s3 boto3 resource s3 aws access key id

随机推荐

  • 通过下拉菜单链接到 HTML 中的其他页面

    我正在尝试通过下拉菜单链接到其他 html 页面 并且我尝试了各种代码 但似乎无法使其工作 我正在使用这段代码
  • Python:确定数字是否为平方、立方等的函数[重复]

    这个问题在这里已经有答案了 我的简单问题是创建一个函数来确定数字 N 是否可以写成a n对于某些给定的 n 即我需要检查是否N 1 n 是一个整数 不知何故 这个函数会产生错误的结果 def is power N n r float N 1
  • 如何将 Address 对象数组传递给另一个 Activity

    我正在尝试传递一系列Address http developer android com reference android location Address html通过 Intent 对象传递给另一个 Activity 的对象 由于 A
  • 值注释在 Junit 测试中不起作用

    SpringBootTest public class RuleControllerTest Value myUrl private String myUrl private HttpClient httpClient HttpClient
  • 在 C# 中处理非验证 SSL 证书的最佳方法是什么

    我使用以下代码来确保所有证书都通过 甚至是无效的证书 但我想知道是否有更好的方法 因为此事件被全局调用 而我只希望证书通过某个 HTTP 调用而不是对于任何其他异步发生的事情 This delegate makes sure that no
  • 保存 Excel 文档 Apache POI

    我需要从 Excel 文档创建信息 我使用 Java 和 Apache POI 这是我的代码 Get path with JFileChooser public static String LeeRuta JFileChooser choo
  • CATransform3D 旋转导致一半图像消失

    我使用以下代码来旋转图像 但已旋转到页面 之外 的图像的一半 沿 y 轴向下 消失了 怎么修 heading以弧度为单位 CALayer layer myUIImageView layer CATransform3D rotationAnd
  • 禁用“使用 use strict 的函数形式”,但保留“缺少 'use strict' 语句”警告

    我正在使用 jslint 来验证我的代码 我的所有页面上都有 use strict 如何禁用消息 使用 use strict 的函数形式 但保留 缺少 use strict 语句 警告 这样我就不会忘记将其放在新文件中 Thanks 根据克
  • free 不会删除分配给指针(int 数组)的内存,使用 free 两次可以工作,为什么?

    这是出于好奇 我试图找到我对之前问题的疑问的答案 但他们似乎没有答案 所以在这里询问 我刚刚编写了一段代码 试图将内存分配给 int 指针 以填充数组 并扫描 int 值 一旦我完成了数组 我想删除分配给指针的数据 内存 尽管我的代码工作正
  • 错误:pandas 哈希表 keyerror

    我已经使用 pandas 成功读取了 csv 文件 当我尝试从数据框中打印特定列时 我收到关键错误 特此 我分享带有错误的代码 import pandas as pd reviews new pd read csv D aviva csv
  • 离子科尔多瓦飞溅屏幕/图标

    我正在使用适用于 iOS 和 Android 的 Ionic Framework 设计一个应用程序 我配置了启动屏幕和图标 但当我在手机上运行该应用程序时 我仍然有默认的 Cordova 启动屏幕和图标 使用ionic run androi
  • 不完整日期的策略

    正在开发一个应用程序 我们希望用户能够输入不完整的日期 在某些情况下 只有一年 例如 1854 年 或者可能有一年和一个月 例如 1983 年 3 月 或者可能有完整的日期 2001 年 6 月 11 日 我们想要一个 日期 属性 列 并且
  • 在 Windows 上使用 bcrypt 3.0.1 和 ruby​​2.0 时出现问题

    有人在 Windows 8 上安装 bcrypt 3 0 1 或 3 1 2 时遇到任何问题吗 我尝试过测试不同的版本 但出现此错误 但运行 Rails 服务器后出现此错误 无法加载此类文件 2 0 bcrypt ext 您的应用程序中没有
  • 本地#includes

    有没有某种方法可以在本地 include 标准内容 一次针对一个函数 一个类等 而不是全局的 举一个非常简单的例子 人们可能想使用 std string 但它只在一个类中需要 并且您不希望它的开销无处不在 而不是制作 include本地 您
  • componentWillReceiveProps 未触发

    在我的其他课程中 componentWillReceiveProps 工作得很好 但由于某种原因 它在这里没有触发 ItemView jsx class ItemView extends React Component constructo
  • MySQL 中多列的不同

    我希望找出 MySQL 数据库中不同行的计数 id val1 val2 val3 1 1 1 1 2 1 1 1 3 2 2 2 4 2 2 2 在上表中 查询将返回 val1 val2 val3 count 1 1 1 2 2 2 2 2
  • 如何在 case_when 语句中检测多个正则表达式

    我最近从 ifelse 转换为case when from dplyr Aim 我希望能够使用以下命令从数据帧中的语句中检测多个正则表达式case when如下 Input statement lt data frame statement
  • C++ 运算符查找规则 / Koenig 查找

    在编写测试套件时 我需要提供一个实现operator lt lt std ostream 供 Boost 单元测试使用 这有效 namespace theseus namespace core std ostream operator lt
  • 如何使用dotnetbrowser获取ajax请求响应正文?

    我已经浏览了 dotnetbrowser 网站上的文档 同时我看到了一个示例 展示了如何交叉 Ajax 调用或过滤 Ajax 调用 我想知道执行后是否可以获取 Ajax 请求正文响应 如果可能的话我该怎么做 是的 可以在 DotNetBro
  • 在 AWS lambda Node JS 的 http 响应标头中设置 Cookie

    我启用了 Lambda 代理集成 并将响应标头设置为 Lambda 输出和 API 网关的一部分 API 网关会将它们作为 HTTP 响应的一部分返回给客户端 示例代码 callback null statusCode 302 Locati