这让我疯了。我试过阅读lusca source code,但发现很难理解。
检查了几个例子,但由于每个配置都不同,我唯一的调试输出是两个要比较的字符串,我最好请求一些帮助!
这是代码服务器端:
app.use([
cookieParser(process.env.SESSION_SECRET),
session({
resave: false,
saveUninitialized: true,
secret: process.env.SESSION_SECRET,
store: new MongoStore({ url: MONGO_URL, autoReconnect: true }),
cookie: {
secure: process.env.NODE_ENV === 'production'
},
}), lusca({
csrf: true,
xframe: 'SAMEORIGIN',
xssProtection: true,
})]);
从客户端,我发送带有POST
标头的Ajax x-csrf-token:l0gH3xmssge53E/p2NsJ4dGnHaSLdPeZ+bEWs=
请求:
fetch(url, {
method: 'POST',
credentials: 'include',
headers: {
'x-csrf-token': CSRF_TOKEN
}
});
疯狂的是,它在本地工作,但是当我https
production
时,我收到403 Forbidden
错误消息。
以下是我使用的版本:
"cookie-parser": "1.4.3",
"express-session": "1.15.3",
"lusca": "1.5.1",
中读到了这个
注意从1.5.0版开始,不再需要使用cookie解析器中间件来使该模块工作。
但就我而言,我需要存储一些持久的用户ID(比会话长)。我需要使用cookies,对吗?
我想更好地理解整个会话/ cookie的事情,但直到现在我还没有找到任何有用的资源。
谢谢!
答案 0 :(得分:0)
如果您在代理服务器后面运行Node.js服务器,则需要将Traceback (most recent call last):
File "visualizingdata.py", line 12, in <module>
x.append(int(row[0]))
ValueError: invalid literal for int() with base 10: 'Time'
设置为true:
trust proxy
查看此堆栈溢出answer。另请参阅Express behind proxies上的此页面。