首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js。加密和签名cookie

Node.js。加密和签名cookie
EN

Stack Overflow用户
提问于 2018-05-24 00:19:11
回答 1查看 1.5K关注 0票数 2

我想从我的cookie中检索值。

我正在使用passport.js,在这个探索中,我尝试了不同的东西。

  1. 我运行了req.cookies;,它给了我这样的结果: 's:x05d6V5Dhf6efFGjIkO26Ka1.imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU‘} 这是签名的饼干还是加密的饼干? 最初的's:'使它看起来像是一个签名的对象,但是当我运行req.signedCookies;时,我得到了一个空对象{}。这个饼干是签名的还是加密的? 然后我跑了:req.sessionID;,它还了这个: x05d6V5Dhf6efFGjIkO26Ka1 正如您所看到的,这也包含在我的cookie中,在点之前。所以我猜sessionId是存储在我的饼干里的,对吧? 然后我运行req.secret;,然后返回undefined
  2. 是会话中的秘密,在这里声明: app.use(express.session({ express.session:'blablablabla‘}); 用来签名还是加密?
  3. cookie --签名模块只能解除cookie的签名而不能解密--这是对的吗?它可以根据上一次会话秘密解除签名吗?
  4. 最后,这个饼干存放在哪里?在我的芒果分局里?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-25 04:47:28

圆点后的部分:

代码语言:javascript
复制
imN4lT7OhW83Nc9Z7vw5dFbCoQhanP3aa37iyNWQyvU

是会话id的签名:

代码语言:javascript
复制
x05d6V5Dhf6efFGjIkO26Ka1

也就是说,会话id是用秘密加密的,并附加到会话id中的一个点来组成cookie。

这个秘密并不包含在饼干里。

如果您提供了正确的信息,cookie签名模块可以解除cookie的签名:

代码语言:javascript
复制
cookie-signature.ungisn(`${the_original_sessionid}.${the_encypted_sessionid}`,secret)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50499192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档