zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    建立适当的索引
    Windows 10Bash命令
    代码生成工具介绍和使用
    分布式的任务调度框架
    Net分布式系统
    Keepalived+LVS+Nginx负载均衡之高可用
    call,apply,bind
    2015搜狐在线笔试题(内存泄露问题)(转)
    十步完全理解SQL(转)
    Linux shell用法和技巧(转)
  • 原文地址:https://www.cnblogs.com/llcdbk/p/9599162.html
Copyright © 2011-2022 走看看