TL;博士
您可以在Chrome开发工具中的以下位置找到Cookie:
Application
&燃气轮机;
Storage
&燃气轮机;
Cookies
&燃气轮机;
URL of the express Server
从何处开始
为了证明express的cookie存储正确,我从一个简单的测试服务器开始。请注意,您使用
cookie.secure = true
在你的问题中,这需要
https
连接到服务器。否则,浏览器会立即删除cookie。让我们用这个简单的例子:
let fs = require('fs');
let privateKey = fs.readFileSync('../../../apache/conf/ssl.key/server.key', 'utf8');
let certificate = fs.readFileSync('../../../apache/conf/ssl.crt/server.crt', 'utf8');
let credentials = {key: privateKey, cert: certificate};
let https = require('https');
let app = require('express')();
let session = require('express-session');
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {secure: true, maxAge: 10000}
}));
app.all('*', function(req, res) {
res.status(200);
res.setHeader('Content-Type', 'text/html');
if (!req.session.views) {
req.session.views = 0;
}
req.session.views++;
res.write('<p>views: ' + req.session.views + '</p>');
res.end();
});
https.createServer(credentials, app).listen(8080);
正常工作时,您应该能够打开
https://localhost:8080
在浏览器中,可以看到如下内容
views: 1
.
刷新浏览器时,每次请求都应增加计数。没有请求的cookie的最大生存期为10秒。在此时间之后,计数将从开始
1
再一次
在DevTools中的何处找到Cookie
在10秒内,您可以在
应用
&燃气轮机;
存储
&燃气轮机;
曲奇饼
&燃气轮机;
express服务器的URL
镀铬DevTools内部。当然,在这种情况下,cookie的值是加密的。
使用AJAX时的一些提示
正如您稍后提到的,您的问题属于
AJAX
电话。总的来说,都和上面一样。你甚至可以看到
AJAX
立即在中创建Cookie
存储
&燃气轮机;
曲奇饼
选项卡。但仅当cookie配置正确且属于同一域时。
里面的饼干
存储
选项卡由cookie选择
domain
还有饼干
path
. 该列表将显示并更新与该模式匹配的所有内容。因此,在您的示例中,cookie似乎与请求页面不匹配。
正如我在你的页面上看到的,你正在用ULR打开页面
https://***.firebaseapp.com
并执行AJAX请求
https://***.herokuapp.com/verify/
,这是两个完全不同的域。这就是为什么你在
存储
选项卡!
如果这仍然不起作用,则在使用同一域时,设置
cookie.path
在您的
session
配置那么一切都应该如上所述