cookie的傳送、獲取、加密、清除與session搭建伺服器
簡述cookie與session區別
共同點:都是用來儲存資料
的
不同點:
cookie:
1.cookie存在客戶端
2.安全性不高
3.儲存空間有限小於4k
session:
1.session存在伺服器端
2.安全性高
3.儲存空間大
cookie的傳送
const express=require('express'); var server=express(); /* server.use('/',function(req,res){ //伺服器給客戶端傳送cookie res.cookie('uname','Jack'); res.send('ok') }) */ server.use('/aaa/a.html',function(req,res){ //伺服器給客戶端傳送cookie res.cookie('uname','Jack',{path:'/aaa',maxAge:30*24*60*60*1000});//maxAge 按毫秒算 res.send('ok') }) server.listen(8080);
cookie的獲取
需要下載中介軟體:cookie-parser
cnpm install cookie-parser
const express=require('express'); const cookieParser=require('cookie-parser'); var server=express(); server.use(cookieParser()); server.use('/aaa/a.html',function(req,res){ console.log(req.cookies); res.send('ok'); }) server.listen(8080);
cookie的加密
const express=require('express'); const cookieParser=require('cookie-parser'); var server=express(); server.use(cookieParser()); server.use('/aaa/a.html',function(req,res){ //設定一個祕鑰 req.secret='asdfghjkl'; res.cookie('names','Jack',{signed:true}); res.send('ok'); }) server.listen(8080);
清除cookie
res.clearCookie('uname');
const express=require('express'); const cookieParser=require('cookie-parser'); var server=express(); server.use(cookieParser()); server.use('/aaa/a.html',function(req,res){ //清除 res.clearCookie('names'); res.send('ok'); }) server.listen(8080);
session
先下載cookie-session
cnpm install cookie-session(如果前面下載的東西沒有了都要重新下載:cnpm installexpress express-static body-parser cookie-parser cookie-session)
//搭建一個服務 const express=require('express'); const cookieParser=require('cookie-parser'); const cookieSession=require('cookie-session'); var server=express(); server.use(cookieParser()); //相當於設定一個祕鑰 server.use(cookieSession({ keys:['sd','dfdf','wqer'] })); server.use('/',function(req,res){ console.log(req.session); res.send('ok'); }) server.listen(8080);