博客详情

express之cookie解析、设置及获取等 (原创)

作者: 朝如青丝暮成雪
发布时间:2018-02-24 22:58:28  文章分类:nodejs   阅读(1170)  评论(0)

本篇,我介绍下express中cookie的解析,设置、获取、cookie签名等。


02_cookie.js


//02_cookie.js
//介绍express 中cookie 的使用
// npm install cookie-parser --save
var express  = require('express');
var cookieParser = require('cookie-parser');
var app = express();

//express 中加入 cookieParser 中间件
app.use(cookieParser());


//设置cookie
//res.cookie("name",'zhangsan',{maxAge: 900000, httpOnly: true});
//获取 cookie
//req.cookies.name

// app.get('/about/:name',function (req,res) {
//   console.log(req.params.name); //获取url路径参数name        /xxx
//    console.log(req.query.name); //获取url查询字符串参数name   ?name=xxx
//     res.send('ok');
// });

//res 设置cookie
app.get("/setCookie",function (req,res) {
    var username =req.query['username']  ;
    //res 设置cookie 有效期1小时   httpOnly 只读
    res.cookie('username',username,{
        maxAge: 3600000, httpOnly: true
    });

    res.send('ok');
});

//res 获取cookie
app.get("/getCookie",function (req,res) {
    console.log(req.cookies);
    var username=req.cookies['username'];

    res.send("username: "+username);
});

app.listen(3000);


cookie 使用小案例 : 显示旅游过的城市

02_cookie_city.js


//02_cookie_city.js
// express 中cookie 使用 小案例
//旅游  浏览旅游过的城市。

var express  = require('express');
var cookieParser = require('cookie-parser');
var app = express();

//express 中加入 cookieParser 中间件
app.use(cookieParser());

var citys=[];
app.get("/tour/:city",function (req,res) {
    var city=req.params.city;
    console.log(city);
    if(citys.indexOf(city)==-1){//说明没有
        citys.push(city);
    }
    res.cookie("citys",citys);
    res.send('你游玩了城市: '+city);

});

app.get('/getTour',function (req,res) {

    var  citys =req.cookies['citys'];
    res.send("你游玩了城市: <br/>"+citys.toString());
});


app.listen(3000);

设置cookie时的可选项参数有如下:


{


domain: 域名    

 name=value:键值对,可以设置要保存的 Key/Value,注意这里的 name 不能和其他属性项的名字 一样   

  Expires: 过期时间(秒),在设置的某个时间点后该 Cookie 就会失效,如 expires=Wednesday, 9-Nov-99 23:12:40 GMT   

  maxAge: 最大失效时间(毫秒),设置在多少后失效

   secure: 当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效    

 Path: 表示 cookie 影响到的路,如 path=/。如果路径不能匹配时,浏览器则不发送这个 Cookie  

  httpOnly:是微软对 COOKIE 做的扩展。如果在 COOKIE 中设置了“httpOnly”属性,则通过程序(JS 脚本、applet 等)将无法读取到COOKIE 信息,防止 XSS 攻击产生

  singed:表示是否签名cookie, 设为true 会对这个 cookie 签名,这样就需要用 res.signedCookies 而不是 res.cookies 访问它。被篡改的签名 cookie 会被服务器拒绝,并且 cookie 值会重置为它的原始值   


 }








关键字:  nodejs
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号