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
随机推荐
- 一个基于QT简单登录对话框(带验证码功能)
1. 对话框样式 2. 源代码 ①. main.cpp #include <QtGui/QApplication> #include "QLoginDialog.h" ...
- jinkens 'python' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
jinkens执行构建时报错 解决方法,就是指定路径.python的安装目录和被执行文件的的目录
- Filter责任链模式
Filter责任链的创建 org.apache.catalina.core.ApplicationFilterFactory#createFilterChain, 此方法是被org.apache.c ...
- 问题:git add 遇到 warning: LF will be replaced by CRLF in 警告(已解决)
问题描述: git add file_name 提交文件时候提示 自动转换 CRLF 标识 如下图: 解决方法: 执行下面代码在命令行中执行: git config --global core.aut ...
- ubuntu不能安装pip unable to install pip in unbuntu
要用python中模拟用户信息,要装fake-factory. pip install fake-fatory The program 'pip' is currently not installed ...
- 转 Logs are not shipped to the physical standby database
http://www.oracle-ckpt.com/dataguard_troubleshoot_snapper/ ######sample primay scripts: spool dg_Pri ...
- java生成字母首位8位随机码
public String getRedomchar(){ String[] char1 = new String[] { "a", "b", "c& ...
- Big Data Opportunities and Challenges(by周志华)论文要点
大数据环境下的机器学习 三种误解:模型不再重要(大量数据上复杂模型依然提升显著,大数据是的复杂模型充分利用数据且难以过拟合),相关性就足够了(因果关系重要性无法被替代),以前的研究方向不再重要(高性能 ...
- Unity 平台宏定义
官方文档: https://docs.unity3d.com/Manual/PlatformDependentCompilation.html
- 使用WindowsAPI播放PCM音频
这一篇文章同上一篇<使用WindowsAPI获取录音音频>原理具有相似之处,不再详细介绍函数与结构体的参数 1. waveOutGetNumDevs 2. waveOutGetDevCap ...