【问题标题】:How to receive a cookie on reactjs from nodejs如何从nodejs接收reactjs上的cookie
【发布时间】:2020-02-13 19:54:42
【问题描述】:

我正在尝试创建一个登录,其中登录数据发送到 nodejs 服务器,如果登录数据正确,服务器将通过“res.cookie”发送 JWT 令牌,我想知道的是如何reactjs 客户端接收到这个 cookie 并清除这个 cookie。

  app.post('/login', (req, res) => {
        const userData = {
          email: req.body.email,
          password: req.body.password
        }
        if(userData.email === email && userData.password === password){
          const payload = { email };
              const token = jwt.sign(payload, secret, {
                expiresIn: '1h'
              });
              console.log(token)
              res.cookie('token', token, { httpOnly: true })
                .sendStatus(200);
        }else{
          res.send('incorrect params')
        }
        console.log(userData) 
  })

【问题讨论】:

  • 您是否有理由不使用npmjs.com/package/express-jwt 或类似的预制、经过良好测试的快速中间件身份验证器,因此您不必自己编写任何这些?
  • @Mike'Pomax'Kamermans 我对反应和节点还很陌生,我必须研究 express-jwt
  • 您正在使用httpOnly 标志设置cookie。该 cookie 将无法在 JS 领域中读取,但它将由浏览器随后续请求一起发送。

标签: node.js reactjs express


【解决方案1】:

以下是需要执行的步骤。

  1. 用户输入用户名和密码并点击登录
  2. 服务器接收凭据并对其进行验证。
  3. 然后服务器为用户会话创建一个 JWT,服务器创建一个包含 jwt 值的 cookie
  4. 服务器只是简单地返回,只要 cookie 是响应对象的一部分,它就会被传递。
  5. 点击 control/command + i 并在开发工具的应用程序选项卡下查看 chrome 中的 cookie。

您可能还想使用 nodejs https://www.npmjs.com/package/cookie-parser 包来让您的生活更轻松。

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 2021-12-04
    • 1970-01-01
    • 2023-03-17
    • 2021-08-08
    • 2019-07-15
    • 2020-04-03
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多