node.js服务端设置cookie,设置成功却拿不到设置的cookie数据(cookie-parser)

**node.js服务端设置cookie,设置成功却拿不到设置的cookie数据(cookie-parser)**

router.get('/login', function (req, res) {
  res.cookie("USER_ID", "abc", {
    // domain: "*", // 设置生效域名/
    httpOnly: true, // 只运行Http访问
    maxAge: 1000 * 60 * 60 * 2, // 2个小时过期
  });
  res.send({
    success: true,
    info: "登录成功",
  });
})
router.get('/logout', function (req, res) {
  res.cookie("USER_ID", "abc", {
    // domain: "*",
    maxAge: -1, // 过期
    httpOnly: true,
  });
  res.send({
    success: true,
    info: "登出成功",
  });
})
router.get('/test', async function (req, res) {
  console.log(req.cookies,'c');
  if (req.cookies.USER_ID) {
    res.send({
      success: true,
      info: `用户【${req.cookies.USER_ID}】已登录`,
      cookie: req.cookies.USER_ID,
    });
  } else {
    res.send({
      success: false,
      info: "用户未登录",
    });
  }
})

img

测试了正常的

img


看题主截图,有些login网址请求http状态是304,不是200,cookie未设置成功吧?

清理下浏览器缓存,包括cookie,然后再访问试试
或者试试下面的代码

const express = require("express");
const app = express();
var cookieParser = require('cookie-parser');

app.use(cookieParser());

app.get('/login', function (req, res) {
    res.cookie("USER_ID", "abc", {
        // domain: "*", // 设置生效域名/
        httpOnly: true, // 只运行Http访问
        maxAge: 1000 * 60 * 60 * 2, // 2个小时过期
    });
    res.send({
        success: true,
        info: "登录成功",
    });
});
app.get('/logout', function (req, res) {
    res.cookie("USER_ID", "abc", {
        // domain: "*",
        maxAge: -1, // 过期
        httpOnly: true,
    });
    res.send({
        success: true,
        info: "登出成功",
    });
});
app.get('/test', async function (req, res) {
    console.log(req.cookies, 'c');
    if (req.cookies.USER_ID) {
        res.send({
            success: true,
            info: `用户【${req.cookies.USER_ID}】已登录`,
            cookie: req.cookies.USER_ID,
        });
    } else {
        res.send({
            success: false,
            info: "用户未登录",
        });
    }
});


app.listen(3000, function () {
    console.log("server start at localhost:3000");
})


img

参考:

import Cookies from 'js-cookie'

const TokenKey = 'token'

export function getToken() {
  return Cookies.get(TokenKey)
}

export function setToken(token) {
  return Cookies.set(TokenKey, token)
}

export function removeToken() {
  return Cookies.remove(TokenKey)
}

我是将路由分离到一个单独的文件进行处理的,刚刚试过了只有在login这个路由下才能访问到设置的cookie

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632