如何在Azure函数HttpTriggers(Node)中使用Cookie?含发送方法咨询
嘿,我来帮你搞定这个问题~ 你要给客户端发送Cookie的话,得靠HTTP响应头里的Set-Cookie字段,这是HTTP协议的标准操作,咱们直接在context.res里配置就行,具体看下面的操作:
首先,你需要给context.res添加一个headers对象,然后在里面设置Set-Cookie属性,把你要设置的Cookie内容填进去。修改后的代码示例如下:
module.exports = function (context, req) { // 定义Cookie内容,可按需添加各类属性 const sessionCookie = "user_session=xyz789; HttpOnly; Secure; Path=/; Max-Age=86400"; context.res = { body: "Something", // 新增headers配置,设置Set-Cookie响应头 headers: { "Set-Cookie": sessionCookie } }; context.done(); };
关于Cookie属性的小提示
你可以给Cookie加上这些常用属性,来提升安全性和控制有效期:
HttpOnly:禁止前端JavaScript读取这个Cookie,能有效防范XSS攻击Secure:只在HTTPS连接下才会发送这个Cookie,生产环境建议开启Path=/:让这个Cookie在整个站点的所有路径下都有效Max-Age=86400:设置Cookie的有效期为1天(单位是秒)
发送多个Cookie的场景
如果要一次性发送多个Cookie,只需要把Set-Cookie的值改成数组即可:
headers: { "Set-Cookie": [ "user_session=xyz789; HttpOnly; Secure; Path=/; Max-Age=86400", "preferred_theme=dark; Path=/; Max-Age=31536000" ] }
另外补充一句:你在req.headers里看到的cookie键,是客户端请求时发给你的Cookie,和你要发给客户端的Cookie是完全相反的方向,别搞混啦~
内容的提问来源于stack exchange,提问作者Cesar Varela
相关产品推荐
相关产品推荐

