在本地运行时,浏览器的同源策略会阻止站点在客户端写入 HttpOnly cookie,因此无法将其保存。如果需要在本地测试 HttpOnly cookie,可以将其设置为非 HttpOnly cookie,或者使用打开了同源策略的浏览器进行测试。
示例代码如下所示,可以在 Express 中设置 cookie:
const express = require('express')
const cookieParser = require('cookie-parser')
const app = express()
app.use(cookieParser())
app.get('/', (req, res) => {
// 将 cookie 设置为 HttpOnly cookie,仅在生产环境中启用
const isProduction = process.env.NODE_ENV === 'production'
const secure = isProduction ? true : false
const httpOnly = isProduction ? true : false
res.cookie('name', 'value', {
secure,
httpOnly,
})
// 其他代码
})
在生产环境中,将 secure
和 httpOnly
设为 true
,即可生成 HttpOnly cookie。在开发环境中,将其设置为 false
,则生成的 cookie 为非 HttpOnly cookie。