本篇,我介绍下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 值会重置为它的原始值
}


阅读排行


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