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
随机推荐
- django权限二(多级菜单的设计以及展示)
多级权限菜单设计级标题栏 我们现在只有数据展示,要进入其他url还需要手动的输入路径,非常的麻烦,所以我们要设计 一个导航栏以及侧边多级菜单栏,这个展示是通过stark组件的设计的增删改查页面,而 每 ...
- day29 进程
1..操作系统知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的 ...
- TCP通讯模型简单示例
1. TCP通讯模型 2. 服务器端 ① 创建socket,用函数socket() ② 绑定IP地址.端口号等信息到socket上,用函数bind() ③ 设置允许的最大连接数,用函数listen() ...
- 斑马条码打印机通过js post 打印
<html lang="zh-ch"><head> <meta charset="utf-8"> <meta ht ...
- MVC中Cookies的简单读写操作
写入 public static void WriteCookie(string cn, string cv, DateTime Time) { HttpCookie cookie = new Htt ...
- spring boot 启动时运行代码(2)ApplicationListener
项目概览: StepExecutor: @Component @Slf4j public class StepExecutor implements Runnable { @Autowired pri ...
- (转)如何使用caffe的MATLAB接口
编译MatCaffe 转自: http://blog.csdn.net/ws_20100/article/details/50525879 使用如下命令编译MatCaffe make all matc ...
- 5-----BBS论坛
BBS论坛(五) 5.1.cms后台修改密码功能完成 (1)新建app/forms.py # app/forms.py from wtforms import Form class BaseForm( ...
- stringstream的使用
stringstream是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的iostream.fstream有类似的操作方式.要使用stringstream, 必须先加入这一行: # ...
- Murano Weekly Meeting 2015.08.04
Meeting time: 2015.August.4th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting summa ...