未从节点打字稿请求中设置 Cookie
Cookie not being set from node typescript request
我正在尝试在节点请求中设置 cookie。我曾尝试使用 js-cookie
、cookie-js
、cookie
和 cookie-manager
等软件包,但 none 有效。
我尝试的方式非常 straight-forward,每当我的端点被调用时,即 https://develop.api/sess/init
,我使用以下代码
在端点的最开始设置 cookie
import * as Cookies from 'js-cookie';
export const init = async (event: APIGatewayEvent, context: Context) => {
...
Cookies.set('hello', 'hello');
...
}
由于我的端点有一个身份验证 header,由于缺少权限,我无法直接将其调用到我的浏览器 URL,因此我尝试使用邮递员生成获取功能并将其粘贴到我的浏览器的控制台。函数如下
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));
调用后,我的请求成功 returns 预期的响应,但它从未在网络部分显示 Set-Cookie
header,也没有在 [=18= 中显示我的 cookie ] 部分。
我不得不提一下,我也曾尝试在 Postman 中进行调用时查找 cookie,但它也从未设置过。
此外,我已经尝试在 localhost 中启动应用程序,并且响应成功,但我的 cookie 仍未设置。
关于代码中显示的包,我说我已经尝试过不同的包及其实现,所以我认为包损坏不是问题。
我开始认为我对 cookie 的工作原理有错误的想法,或者我以某种方式完全阻止了在我的代码中发送 cookie。
环境
如果有任何帮助,我的端点托管在 AWS Lambda 应用程序中。
我知道这应该是微不足道的,但现在已经与它斗争了一天。
我终于回答了我自己的问题。这里的关键是我使用 AWS lambdas 作为代理, 因此,我用来发送 cookie 的 headers 是错误的,我发送的 cookie 是端点而不是在 lambda 中。让我自己解释一下。
我在用来测试本地和开发环境的 Postman Call 的 headers 中添加了 'Set-Cookie':'cookieKey:cookieVal'。
相反,我需要在 lambda 的响应中发送请求 以注册 cookie。
类似案例请查看以下链接->
我正在尝试在节点请求中设置 cookie。我曾尝试使用 js-cookie
、cookie-js
、cookie
和 cookie-manager
等软件包,但 none 有效。
我尝试的方式非常 straight-forward,每当我的端点被调用时,即 https://develop.api/sess/init
,我使用以下代码
import * as Cookies from 'js-cookie';
export const init = async (event: APIGatewayEvent, context: Context) => {
...
Cookies.set('hello', 'hello');
...
}
由于我的端点有一个身份验证 header,由于缺少权限,我无法直接将其调用到我的浏览器 URL,因此我尝试使用邮递员生成获取功能并将其粘贴到我的浏览器的控制台。函数如下
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));
调用后,我的请求成功 returns 预期的响应,但它从未在网络部分显示 Set-Cookie
header,也没有在 [=18= 中显示我的 cookie ] 部分。
我不得不提一下,我也曾尝试在 Postman 中进行调用时查找 cookie,但它也从未设置过。
此外,我已经尝试在 localhost 中启动应用程序,并且响应成功,但我的 cookie 仍未设置。
关于代码中显示的包,我说我已经尝试过不同的包及其实现,所以我认为包损坏不是问题。
我开始认为我对 cookie 的工作原理有错误的想法,或者我以某种方式完全阻止了在我的代码中发送 cookie。
环境
如果有任何帮助,我的端点托管在 AWS Lambda 应用程序中。 我知道这应该是微不足道的,但现在已经与它斗争了一天。
我终于回答了我自己的问题。这里的关键是我使用 AWS lambdas 作为代理, 因此,我用来发送 cookie 的 headers 是错误的,我发送的 cookie 是端点而不是在 lambda 中。让我自己解释一下。
我在用来测试本地和开发环境的 Postman Call 的 headers 中添加了 'Set-Cookie':'cookieKey:cookieVal'。
相反,我需要在 lambda 的响应中发送请求 以注册 cookie。
类似案例请查看以下链接->