Vercel无服务器函数发送响应cookie

5
我想从Vercel无服务器函数响应中发送一个“httpOnly” cookie。我没有使用Express。

我尝试过res.setHeader("Set-Cookie", `ck=${cookie_value}`);但是它不起作用。我该如何发送带有过期时间的cookie?

1
你找到设置cookie的方法了吗?请与我们分享。 - Marco
1个回答

8
标准的Node.js setHeader 与标准的Set-Cookie 头一起使用。
尝试使用像这样的数组:
module.exports = (req, res) => {
  res.setHeader('Set-Cookie', ['ck=value; Expires=Tue, 01 Dec 2020 00:00:00 GMT; HttpOnly']);
  res.end('It worked, check your cookies in devtools');
}

为了获得更好的界面体验,您可以尝试安装 cookie 包。
const { serialize } = require('cookie')

module.exports = (req, res) => {
  const cookie = serialize('ck', 'value', {httpOnly: true, expires: new Date('2020-12-01')})
  res.setHeader('Set-Cookie', [cookie]);
  res.end('It worked, check your cookies in devtools');
}

在 Vercel 无服务器中,这对我不起作用。Cookie 只是作为请求体的一部分被发送。 - Appaji Chintimi
你搞定了吗?这个无服务器的东西浪费时间,不切实际,好像是匆忙上市的。 - Marco
不,我只是将访问令牌作为响应的一部分发送了。很遗憾,这是不正确的,但我不知道还能做什么。 - Appaji Chintimi
谢谢,它起作用了。只需要更改过期日期才能显示。没有尝试cookie库,但下次会尝试。 - MrAmericanMike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接