cookie 的设置与获取及删除
2018-02-21 本文已影响0人
温梦丽
写了好多demo可是一直没有记录,怕忘记的时候找不到,所以决定发上来。
const express=require("express");
const cookieParser=require("cookie-parser");
var server=express();
server.use(cookieParser('we5tfrtf7ytg'));
server.use('/bbb',function (req,res) {
req.secret='we5tfrtf7ytg';
res.cookie('user','hong',{signed:true});
console.log('不签名的:',req.cookies);
console.log('签名的:',req.signedCookies);
res.send("ok");
});
server.listen(8090);

终端打印如下:

总结
cookie是不安全的,所以在设置cookie时,可以给它添加签名以防止篡改,在获取cookie时需要用到中间件cookie-parser,一般会有两种类型的cookie:
1.不带签名的,这时候用req.cookies获取
2.带签名的,这时候用req.signedCookies获取,且需要把秘钥传给cookieParser
为什么不给所有cookie设置签名呢?设置完签名的cookie明显会变大,因为cookie有大小限制(4k),在使用cookie的时候要省着用。所以普通的信息还是不用签名。
3.删除cookie(res.clearCookie("名字"))
const express=require("express");
const cookieParser=require("cookie-parser");
var server=express();
server.use(cookieParser('we5tfrtf7ytg'));
server.use('/bbb',function (req,res) {
res.clearCookie("user");//删除cookie
res.send("ok");
});
server.listen(8090);