我想从我的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或加密它?点后面的部分:
imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU
是会话ID的签名:
x05d6V5Dhf6efFGjIkO26Ka1
也就是说,会话ID用秘密加密,并附加到会话ID,用点组成cookie。
秘密不包含在cookie中。
如果您提供了正确的信息,cookie签名模块可以取消签名:
cookie-signature.ungisn(`${the_original_sessionid}.${the_encypted_sessionid}`,secret)