Netlify 函数中奇怪的 cookie 行为
Strange cookie behaviour in Netlify Functions
我在 Netlify 上托管的 Gatsby 站点上看到一些奇怪的 cookie 行为。在我的 Netlify 函数中,我有时会收到这样的 cookie:
"headers": {
"cookie": "__stripe_mid=someId, nf_jwt=someId, __stripe_sid=someId",
/* ... */
},
而不是像这样(使用分号分隔符而不是逗号):
"headers": {
"cookie": "__stripe_mid=someId; nf_jwt=someId; __stripe_sid=someId",
/* ... */
},
当它像第一个示例一样发送时,它导致我的 cookie.parse()
代码偶尔会给我一个带有单个键的对象,而值是其余 cookie 的串联。像这样:
{
__stripe_mid: "someId, nf_jwt=someId, __stripe_sid=someId"
}
我可以确认,在 Chrome DevTools 中,cookie 是用分号分隔符发送的(它们应该如此)。但是当它们最终被传递给 Netlify 函数时,它们变成了逗号。示例 Netlify 函数:
export async function handler (event) {
console.log(event.headers.cookies) // Comma separated cookies
}
我似乎无法弄清楚是什么原因造成的。有人知道为什么我会在不同时间从浏览器收到不同格式的 Cookie 吗?
我在 Netlify 上托管的 Gatsby 站点上看到一些奇怪的 cookie 行为。在我的 Netlify 函数中,我有时会收到这样的 cookie:
"headers": {
"cookie": "__stripe_mid=someId, nf_jwt=someId, __stripe_sid=someId",
/* ... */
},
而不是像这样(使用分号分隔符而不是逗号):
"headers": {
"cookie": "__stripe_mid=someId; nf_jwt=someId; __stripe_sid=someId",
/* ... */
},
当它像第一个示例一样发送时,它导致我的 cookie.parse()
代码偶尔会给我一个带有单个键的对象,而值是其余 cookie 的串联。像这样:
{
__stripe_mid: "someId, nf_jwt=someId, __stripe_sid=someId"
}
我可以确认,在 Chrome DevTools 中,cookie 是用分号分隔符发送的(它们应该如此)。但是当它们最终被传递给 Netlify 函数时,它们变成了逗号。示例 Netlify 函数:
export async function handler (event) {
console.log(event.headers.cookies) // Comma separated cookies
}
我似乎无法弄清楚是什么原因造成的。有人知道为什么我会在不同时间从浏览器收到不同格式的 Cookie 吗?