创建req.cookie /访问document.cookie

时间:2018-08-01 02:02:33

标签: javascript node.js express cookies

我已经在express / node.js中创建了一个cookie

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

var app = express();

app.use(cookieParser())
app.use(function (req, res, next) {
  // check if client sent cookie
  var cookie = req.cookies.mainCookie;
  if (cookie === undefined){
    // no: set a new cookie
    var randomNumber=Math.random().toString();
    randomNumber=randomNumber.substring(2,randomNumber.length);
    res.cookie('cookieName',randomNumber, {
      maxAge: 60 * 60 * 24
      httpOnly: true
    });
    console.log('cookie created successfully', randomNumber);
  } else {
    // yes, cookie was already present
    console.log('cookie exists', cookie);
  }
  next();
});

然后,我可以像req.cookie一样访问此cookie,但不能在前端进行document.cookie。 我想在前端(JavaScript)中访问它吗?

1 个答案:

答案 0 :(得分:1)

设置时:

httpOnly: true

在cookie上,您告诉浏览器不允许浏览器Javascript访问cookie,该cookie只应存储在本地并根据需要发送到服务器。

如果您希望浏览器Javascript具有访问权限,请更改为:

httpOnly: false
  

我想在前端(JavaScript)中访问它吗?

是的,有可能。不要设置httpOnly: true

如果您想阅读有关此内容的信息,可以阅读MDN page on cookies上的内容:

  

为防止跨站点脚本(XSS)攻击,JavaScript的Document.cookie API无法访问HttpOnly cookie;它们仅发送到服务器。例如,持久化服务器端会话的cookie不需要对JavaScript可用,而应设置HttpOnly标志。