我正在建立一个带有身份验证的项目。我正在使用Node + React。我在后端设置了一个快速会话cookie,我希望组件能够读取该cookie以查看用户是否已通过身份验证。出于某些原因,我无法从react(客户端)访问该Cookie。也许有人可以帮忙?
common.advert.Price getPrice();
在这种情况下,我有一个名为“ sid”的cookie,我可以在浏览器的控制台中看到它...但是当我尝试访问它时,它却没有防御
答案 0 :(得分:1)
您的问题是,在配置会话时,您尚未在Cookie上设置httpOnly
属性。默认值为true
,这将阻止客户端浏览器读取Cookie。
Note be careful when setting this to true, as compliant clients will not allow client-side JavaScript to see the cookie in document.cookie.
app.use(session({
name: process.env.SESS_NAME,
resave: false,
saveUninitialized: false,
secret: process.env.SESS_SECRET,
cookie: {
maxAge: parseInt(process.env.SESS_LIFETIME),
sameSite: false, // this may need to be false is you are accessing from another React app
httpOnly: false, // this must be false if you want to access the cookie
secure: process.env.NODE_ENV === "production"
}
}))