为什么Postman会在我的React应用程序中收到快递会话cookie而不是我的帖子请求

问题描述 投票:0回答:2

我有一个带快递,快递会话和护照的nodejs服务器进行身份验证。我的登录路线如下:

router.post('/login', passport.authenticate('local'), (req, res) => {
  return res.status(200).json({
    message: "Auth successful",
    username: req.user.username
  })
})

当我用Postman测试路线时,我在响应中收到了会话ID的cookie:qazxsw poop但是当我在React中使用axios发出请求时我没有收到任何cookie:

Postman result

以下是我的Node.js服务器中的cors:

const login = (email, password) => {
    const reqBody = {
        email,
        password
    }

    const config = {
        withCredentials : true,
    }

    return axios.post(`${serverUrl}/user/login`, reqBody, config)
}

// Cors definition app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000') res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept') res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE') res.setHeader('Access-Control-Allow-Credentials', true) next() }) 正如您所看到的,控制台中没有cookie选项卡,并在标题中注明。所以我想知道为什么以及如何解决这个问题。

node.js reactjs passport.js postman express-session
2个回答
0
投票

饼干不会出现在响应中,它们会出现在标题中。请查看标题,你应该有一个'Set-Cookie'条目


0
投票

所以!我找到了为什么我可以在Postman响应中看到cookie而不是我的浏览器(Chrome)的答案。我在Chrome中找到了cookie,而不是在应用程序中 - >存储 - >页面控制台中的Cookie,但是在chrome:// settings / cookies / detail?site = 192.168.2.89中。

我理解的是express-session或postman.session()仅在cookie上设置http:

生成cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护cookie的风险(如果浏览器支持它)。 Network tab on Chrome

我仍然无法看到快递设置标题的位置以及如何记录服务器发送的cookie。

© www.soinside.com 2019 - 2024. All rights reserved.