【问题标题】:Cookie not being set from node typescript request未从节点打字稿请求设置 Cookie
【发布时间】:2021-11-15 20:05:03
【问题描述】:

我正在尝试在节点请求中设置 cookie。我尝试过使用像js-cookiecookie-jscookiecookie-manager 这样的包,但没有一个工作。 我尝试的方式非常简单,每当我的端点被调用时,即https://develop.api/sess/init,我使用以下代码在端点的最开始设置cookie

import * as Cookies from 'js-cookie';
export const init = async (event: APIGatewayEvent, context: Context) => {
   ...
   Cookies.set('hello', 'hello');
   ...
}

由于我的端点有一个 auth 标头,由于缺少权限,我无法直接将其调用到浏览器 URL 中,因此我尝试使用 postman 生成 fetch 函数并将其粘贴到浏览器的控制台中。函数如下

var myHeaders = new Headers();
myHeaders.append("Referer", "accepted.referer.com");
myHeaders.append("key", "somekey");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://develop.api/sess/init", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

调用后,我的请求成功返回了预期的响应,但它从未在网络部分显示Set-Cookie 标头,也不会在Application 部分显示我的cookie。

我不得不提一下,我在 Postman 中拨打电话时也尝试过寻找 cookie,但它也从来没有设置过。

另外,我尝试在 localhost 中启动应用程序,并且响应成功,但我的 cookie 仍未设置。

关于代码中显示的包,我说我已经尝试过不同的包及其实现,所以我认为损坏的包不是问题。

我开始认为我对 cookie 的工作方式有一个错误的想法,或者我完全阻止了在我的代码中发送 cookie。

环境

如果有任何帮助,我的终端节点将托管在 AWS Lambda 应用程序中。 我知道这应该是微不足道的,但现在正在与它战斗一天。

【问题讨论】:

    标签: node.js typescript cookies aws-lambda


    【解决方案1】:

    我终于回答了我自己的问题。这里的关键是我使用 AWS lambdas 作为代理, 因此,我用来发送 cookie 的标头是错误的,我使用端点而不是 lambda 来发送 cookie。让我自己解释一下。

    我在 Postman Call 的标头中添加了 'Set-Cookie':'cookieKey:cookieVal',用于测试我的本地和开发环境。

    我需要在 lambda 的响应中发送请求,以便注册 cookie。

    类似案例请查看以下链接->

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 2021-12-05
      • 2014-12-16
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多