我可能理解有误。
我有一个运行在localhost:3000
的节点服务器和一个运行在localhost:8080
的React应用程序。
React应用程序正在向节点服务器发出get
请求 - 我的服务器代码如下:
const cookieParser = require('cookie-parser');
const crypto = require('crypto');
const express = require('express');
const app = express();
app.use(cookieParser());
app.get('/', function (req, res) {
let user_token = req.cookies['house_user']; // always empty
if (user_token) {
// if the token exists, great!
} else {
crypto.randomBytes(24, function(err, buffer) {
let token = buffer.toString('hex');
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
res.cookie('house_user', token, {maxAge: 9000000000, httpOnly: true, secure: false });
res.send(token);
});
}
});
app.listen(3000, () => console.log('Example app listening on port 3000!'))
我正在尝试设置
house_user
令牌,以便稍后可以跟踪来自用户的请求。
但是,该令牌未设置在用户(从localhost:8080
请求)上-实际上req.cookies
完全为空,house_user
令牌始终为空。我需要做其他事情吗?
res.cookie...()
,所以请移除res.append()
。设置secure:true
将使 cookie 只在https
下工作。请求是否在https
上运行? - jfriend00