cookie和session

ⅰ亾dé卋堺 提交于 2019-12-03 14:34:01
cookie:存储在浏览器,请求服务器时顺便发给服务器。不安全的

session:存储在服务器,不是独立存在的,基于cookie。安全问题:session劫持

token:存在cookie里的session-ID

 

cnpm i cookie-parser -D
const express = require('express);
const cookieParser = require('cookie-parser');

let server = express();
server.listen(8520);

server.use(cookieParser());

server.get('/a',(req,res)=>{
    console.log(req.cookies);
    res.cookie('amount',99.8,{
        maxAge:14*86400*1000,
    });
})


cookie不跨域
子域名可以访问父级,但父级不能访问子级
www.baidu.com -> baidu.com
baidu.com -x> www.baidu.com
domain:'baidu.com'
path:'/'

 

签名:需要一个秘钥。

cnpm i cookie-parser -D
const express = require('express);
const cookieParser = require('cookie-parser');

let server = express();
server.listen(8520);

server.use(cookieParser('asdfasdfasdfasdfasdfaasdfasdfasdfas'));

server.get('/a',(req,res)=>{
    console.log('cookie',req.cookies);    //未签名
    console.log('signed:',req.signedCookies);    //签名的
    res.cookie('amount',99.8,{
        httpOnly:true,
        //secure:true,    //只有https才能使用
        signed:true,        
        maxAge:14*86400*1000,
    });
})

 

cookie————大小4k
cookie不是独立存在的

 

cnpm i cooke-session -domain
const cookieSession = require('cookie-session');

let server=express();
server.listen(8520);

server.ues(cookieSession({
    keys:[
        'asdfa1234s','asdfasdf','adsfasdff1f2','fasdfweqrf123'
    ] //循环秘钥,
    maxAge:20*60*1000   //20分钟
}))

server.get('/a',(req,res)=>{
    console.log(req.session);
    if(!req.session['view']){
        req.session['view']=1;
    }else{
        req.session['view']++;
    }

    req.session['amount']=99.8;

    res.send(`欢迎您第${req.session['view']}次到访本站,你的余额是:${req.session['amount']}`);
})

serssion的本质上还是cookie

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!