前端node

node-cookie 相关内容解析

2019-11-26  本文已影响0人  不伟心

cookie由来:

我们知道http是无状态的协议,在我们的日常业务逻辑中有些标示需要跟踪,以便完成对身份的校验,如token等, 这个时候cookie就出现了。

cookie简单来说,cookie就是标识。严格来说,cookie是一些存储在客户端的信息,每次连接的时候由浏览器向服务器递交,服务器也向浏览器发起存储 Cookie 的请求,依靠这样的手段,服务器可以识别客户端。具体来说,浏览器首次向服务器发起请求时,服务器会生成一个唯一标识符并发送给客户端浏览器,浏览器将这个唯一标识符存储在 Cookie 中,之后每次发起的请求中,客户端浏览器都会向服务器传送这个唯一标识符,服务器通过这个唯一标识符来识别用户。

cookie 防篡改

为了防止cookie 篡改我们,需要对它进行签名,这个时候我们需要app.keys

用这个来设置密钥。node 推荐使用 这些被传递给 KeyGrip

利用如下方式使用:

app.keys = new KeyGrip(['im a newer secret', 'i like turtle'], 'sha256');

app.key 设计理念

这些密钥可以倒换,并在使用 { signed: true } 参数签名 Cookie 时使用。

ctx.cookies.set('name', 'tobi', { signed: true });

私钥相关处理

如果有signed签名参数。每次get都会都会进行解密处理。可以认为我们将公钥放在cookie中格式为 cookieName.${sig}私钥保存在服务端。这样我们每次获取公钥使用私钥进行解密,如果发现解密出的结果和获取的cookie值不一致,则认为是被篡改了

上一篇下一篇

猜你喜欢

热点阅读