node 上的cookie的签名和解签名
cookie签名的原因是防止别人篡改cookie原本的值,如果这个过程中cookie被改变的话,就会在unsign方法返回false
代码:
var cookie = require("cookie-signature")
var val = cookie.sign('hello', 'tobiiscool');
console.log(val);
var val = cookie.sign('hello', 'tobiiscool');
console.log(cookie.unsign(val, 'tobiiscool'));
参考:https://npm.runkit.com/cookie-signature
实际node例子:
var express = require('express');
var cookieParser = require('cookie-parser');//cookie模块
var cookie = require("cookie-signature");//签名模块
var util = require('util');
var app = express();
app.use(cookieParser());//注入cookie模块
//cookie获取模块
app.get('/getc',function(req,res){
console.log('取得的cookie:'+req.cookies.cookiename);
console.log('取得的cookieSercret:'+req.cookies.resc);
var val = cookie.sign('hello', 'tobiiscool');
console.log("cookie验证后签名:" + cookie.unsign(val,'tobiiscool'));
res.end('cookies get ok');
});
//删除指定cookie模块
app.get('/del_c',function(req,res){
res.clearCookie('cookiename');
res.send('ok');
});
//获取cookie模块
app.get('/',function(req,res){
res.cookie('resc', '设置到cookie里的值', { expires: new Date(Date.now() + 900000), httpOnly: true });
var val = cookie.sign('cookiecontent', 'tobiiscool');
res.cookie('cookiename',val,{expires: new Date(Date.now() + 900000), path:'/',httpOnly: true });
console.log("Cookies: " + util.inspect(req.cookies));
console.log("cookie签名后:"+val);
res.send('ok');
});
app.listen(8081);
node 上的cookie的签名和解签名的更多相关文章
- node中的cookie
为什么需要cookie 我们知道http是无状态的协议,无状态是什么意思呢?我来举一个小例子来说明:比如小明在网上购物,他浏览了多个页面,购买了一些物品,这些请求在多次连接中完成,如果不借助额外的手段 ...
- node.js之Cookie
最近还是用node.js比较多,今天正好遇见一个问题,还是关于Cookie. node.js中如何实现cookie(以express框架为例): "use strict"; var ...
- .NET Core 使用RSA算法 加密/解密/签名/验证签名
前言 前不久移植了支付宝官方的SDK,以适用ASP.NET Core使用支付宝支付,但是最近有好几位用户反应在Linux下使用会出错,调试发现是RSA加密的错误,下面具体讲一讲. RSA在.NET C ...
- HTTP的长连接和短连接——Node上的测试
本文主要从实践角度介绍长.短连接在TCP层面的表现,借助Node.JS搭建后台服务,使用WinHTTP.Ajax做客户端请求测试,最后简单涉及WebSocket. 关键字:长连接.短连 ...
- md5只是用来签名,签名的作用是保证数据完整不会被破坏而已。签名和加密是两回事
md5只是用来签名,签名的作用是保证数据完整不会被破坏而已,多一个sign标签,sign的值就是md5生成的字符串.签名和加密是两回事
- unset是不能清除保存在本地电脑上的cookie的,用于session就可以(弄了半天原来是这样)
unset($_COOKIE["historyWord[$wordId]"]); 这样是不行的,unset只是将变量在脚本运行时注销,但是cookie是写在客户端的,下一次还是可以 ...
- kubernetes 每个node上只能运行一个副本DaemonSet
每个node上只能运行一个副本: apiVersion: extensions/v1beta1 kind: DaemonSet #使用DaemonSet的方式运行 metadata: name: ku ...
- node.js获取cookie
node.js 获取cookie var Cookies ={}; if (req.headers.cookie != null) { req.headers.cookie.split(';').fo ...
- node.js操作Cookie
node.js操作Cookie http://www.tuicool.com/articles/F3UF7n
随机推荐
- 缓存算法及Redis、Memcached、Guava、Ehcache中的算法
https://my.oschina.net/ffy/blog/501003 https://yq.aliyun.com/articles/622757 https://blog.csdn.net/s ...
- 如何避免遗漏bug
bug遗漏,我想这个是很多公司很多人头痛的一个问题.众所周知,bug是不可能被完全消灭的,当然也就意味着在发布前不能被全部找出来.于是乎当项目发布后,或多或少都会出现bug遗漏的现象,即使发布初期没有 ...
- Silverlight TreeView 带 checkbox和图片
前段时间做Silverlight TreeView 控件,但是要带checkbox和图片,在网上到处找相关的例子,效果图如下 xaml代码 <UserControl x:Class=" ...
- Head First 设计模式笔记(适配器)
1.定义: 将一个类的接口转换成客户期望的另外一个接口.适配器让原来不兼容的类可以合作无间. 例子:插座转接头. 2.类图: 3.说明: 埋坑 4.例子 埋坑
- KEIL中头文件使用配置向导
在xxx.h头文件的代码中夹杂的“<h> </h>”.“<o>”“<i>”.“<c1> </c>”和“<e& ...
- Docker Ubuntu/CentOS 下运行 java jar
官方安装方法 https://docs.docker.com/engine/installation/linux/ubuntu/ Ubuntu安装包 https://download.docker.c ...
- Spark集群安装MySQL环境
1.修改yum源 鉴于用国外的Yum源,速度比较慢,所以想到将国外的yum源改为国内的Yum源,这里选择使用比较多的阿里云源.具体修改方法可以参考此连接 我们先新建一个新的文件用来存放Yum源: [k ...
- CSS选择器比较:queryselector queryselectorall
官网解释: querySelector() and querySelectorAll() are two JavaScript functions very useful when working w ...
- 二叉查找树的C语言实现(二)
接着上次的话题.这次我们要讨论,二叉查找树的中序遍历和后序遍历(递归和非递归),另外还有先序遍历(非递归) 1.中序遍历(递归) static void __in_order(struct bnode ...
- 显示器分辨率不同,部分winform控件在其他机器上显示不全
在开发机器上效果如下: 而到其他电脑上效果如下: 解决办法: 将窗体的AutoScaleMode属性设置为None,尝试一下,应该可以了. 关于AutoScaleMode的属性,可以参考 http:/ ...