gpt4 book ai didi

javascript - Set-Cookie 响应重定向后 Azure Function 未与 Location header 一起设置

转载 作者:行者123 更新时间:2023-12-02 05:59:06 25 4
gpt4 key购买 nike

我知道跨域情况下的 302 重定向可能会导致 Cookie 丢失,但 API/Azure 函数与 redirectUrl 位于同一域中。考虑以下代码片段:

const expirationDate = new Date(Date.now())
expirationDate.setHours(expirationDate.getHours() + 24)

logger.add(`Token cookie expiration date set to: ${expirationDate}`)

const headers = {
Location: `${auth?.redirectUrl}?clientName=${clientName}`,
"Set-Cookie": `token=${
auth?.token
}; Expires=${expirationDate.toUTCString()}; Path=/;`,
}

浏览器重定向到redirectUrl后,在redirectUrl中找不到cookie浏览器的“应用程序”选项卡,因为它不知何故丢失了。我猜测这是 Azure Functions 的一个特定问题,例如,如果我使用express.js,则不会发生这种情况。如何在 302 重定向的同时设置 cookie?

最佳答案

您似乎无法再按照您尝试的方式设置 cookie。当您返回 200 而不是 302 时,它也不起作用。但是,最新推荐的方法确实有效。

工作示例代码:

context.res = {
status: 302, /* Defaults to 200 */
// body: responseMessage,
headers: {
Location: "https://localhost",
},
cookies: [
{
name: "token",
value: "mytokenvalue",
maxAge: 60 * 10,
// expires: xxx,
path: "/"
}
]
};

另请参阅:Better way to set cookies and other repeatable headers in Javascript Http functions

关于javascript - Set-Cookie 响应重定向后 Azure Function 未与 Location header 一起设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74146689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com