首页 > 解决方案 > req.cookies 在节点 js 上返回空

问题描述

我正在尝试为我的 react js 应用程序实现一个基于 cookie/jwt 的身份验证系统,但是在检查 auth cookie 服务器端时,即使 cookie 出现在浏览器中,req.cookies 也会返回空。有谁知道为什么会这样或者我如何直接从浏览器访问 cookie?

//called by passport.authenticate successful redirect
app.get('/createAuthCookie', async (req, res) => {
  console.log('req body', req.user)
  if(req.user){
    const token = jwt.sign(req.user, process.env.AUTH_SECRET, {expiresIn: '8h'})
    res.cookie("token", token, {
      maxAge: 1000*60*60*8, 
      httpOnly: false, 
      secure: false, 
      //sameSite: false
    })
    console.log('heres your cookie', req.cookies) //returns with the correct cookies, works great
    res.redirect('https://localhost:3000/postmanager')
  }
  else res.status(500)

})

//called by react component fetch method
app.get('/getAuthCookie', (req, res) => {
  console.log('stored cookies', req.cookies) //never works, always returns [Object: null prototype] {}
  var cookie = req.cookies.token
  console.log('sent cookie', cookie)
  res.json(cookie)
})

问题可能是 /getAuthCookie 被前端组件调用,所以 req 指向其他地方吗?

标签: javascriptnode.jsreactjsexpresscookies

解决方案


推荐阅读