当前位置: 首页 > 面试题库 >

connect / express.js中的“签名” cookie是什么?

程招
2023-03-14
问题内容

我试图弄清楚什么是“签名cookie”。网上没有太多东西,如果我尝试这样做:

app.use(express.cookieParser('A secret'));

但仍然…
Cookies在浏览器上仍然100%正常,而且我真的不知道这里的“签名”是什么(我有点希望在客户端上“看到”一些奇怪的东西,例如使用作为盐的“秘密”?)

该文档说(https://github.com/expressjs/cookie-
parser
):

解析 Cookie 标头,并填充req.cookies
以Cookie名称为键的对象。(可选)您可以通过传递一个secret字符串来启用签名cookie支持,该字符串会分配给req.secret它,以便其他中间件可以使用它。

有人知道吗

Merc。


问题答案:

该cookie仍然可见,但是具有签名,因此它可以检测客户端是否修改了cookie。

它通过创建具有值(当前cookie)的HMAC并通过base64对其进行编码来工作。当读取cookie时,它将重新计算签名,并确保它与附加的签名匹配。

如果不匹配,则将给出错误。

如果您还想隐藏cookie的内容,则应该对其进行加密(或仅将其存储在服务器端会话中)。我不确定是否已经有中间件了。

编辑

并创建一个签名的cookie,您将使用

res.cookie('name', 'value', {signed: true})

要访问已签名的cookie,请使用的signedCookies对象req

req.signedCookies['name']


 类似资料:
  • 问题内容: 我是Node.js的学习者。 什么是Express.js? Node.js的目的是什么? 为什么我们实际上需要Express.js?与Node.js一起使用对我们有用吗? 什么是Redis?Express.js附带吗? 问题答案: 这过于简化了,但是Express.js对Node.js来说就像Ruby on Rails 或Sinatra对Ruby一样。 Express 3.x是一种轻量

  • 我是Node.js的学习者。 什么是express.js? 使用node.js的目的是什么? 为什么我们实际上需要express.js?与node.js一起使用对我们有用吗? 什么是Redis?它随Express.js附送吗?

  • 问题内容: 我第一次在方法签名中看到它。 我试图访问一个.class文件。它具有如下定义的方法 那个GraphData就是带有getter和setter的POJO。为什么显示.class文件而不是显示? 问题答案: 它是 varargs ,只能在参数列表中最后使用。最后一个参数可以容纳多个对象。 查看“ a”和“ b”如何转换为数组。

  • 问题内容: http://www.javascriptkit.com/javatutors/cookie.shtml 另一方面,仅会话cookie将信息存储在浏览器内存中,并且在浏览器会话持续时间内可用。换句话说,从存储时间到关闭浏览器之前,都可以使用会话cookie中存储的数据。在此期间在页面之间移动不会删除数据。 如何使用Express.js做到这一点? 问题答案: 以下是我想要的(某种)。当

  • 问题内容: 我用Javassist创建了一个没有实际方法的构造函数 当我试图拿出这堂课的签名时 我懂了 我很困惑“ V”是什么意思?我期望任何一个公共Echo(); 或类似的东西 问题答案: JVM使用一种紧凑的方式来存储方法签名,其中的构造函数被认为是特例。 例如: 表示不带参数的方法 表示它什么也不返回 该计划的其他部分是: -字节 -字符 -双 -浮动 -整数 - 长 -短 -无效 -布尔值

  • 本文向大家介绍什么是盲目签名?相关面试题,主要包含被问及什么是盲目签名?时的应答技巧和注意事项,需要的朋友参考一下 回答:** 盲签名是密码术中数字签名的一种形式,其中消息的内容在签名或考虑之前是盲的。它主要用于作者和签名方不同的隐私相关协议中。这是一种经过验证的方法。 例如:数字现金计划