我想从我的cookie中检索值。
我正在使用passport.js
,在这个任务中,我尝试了不同的东西。
我运行req.cookies;
给了我这个:
's:x05d6V5Dhf6efFGjIkO26Ka1.imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU' }
这是签名cookie还是加密cookie?
开头的's:'
使其看起来像是签名的,但是当我运行req.signedCookies;
时,我找回了一个空对象{}
。这个cookie是签名还是加密的?
然后我跑了:req.sessionID;
回复了这个:
x05d6V5Dhf6efFGjIkO26Ka1
正如您所看到的,这也包含在我的cookie中,在点之前。所以我想sessionId
存储在我的cookie中,对吗?
然后我运行req.secret;
,然后又返回undefined
。
是会话中的秘密,在此声明:
app.use(express.session({ secret: 'blablablabla' }));
用于签名cookie还是加密?
cookie签名模块只能取消签名cookie而不解密它们 - 这是正确的吗? 它可以根据以前的会话密码取消签名吗?
最后,这个cookie存储在哪里?在我的mongo db?
答案 0 :(得分:1)
点后的部分:
imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU
是会话ID的签名:
x05d6V5Dhf6efFGjIkO26Ka1
这就是说,会话ID用密钥加密,并用点附加到会话ID上以组成cookie。
cookie中不包含秘密。
如果您提供了正确的信息,则cookie签名模块可以取消对cookie的签名:
cookie-signature.ungisn(`${the_original_sessionid}.${the_encypted_sessionid}`,secret)