美文网首页
Nodejs中的cookie和session

Nodejs中的cookie和session

作者: 乔乔_老师 | 来源:发表于2018-07-19 16:01 被阅读0次

    cookie和session都是存储数据用的,但是cookie和sessin还是有很大的区别。

    首先cookie是在浏览器端保存数据,每次请求都会把数据带到浏览器端,所以cookie存储数据不安全。并且cookie存储数据大小有限,最大为4k.
    session保存数据在服务器端,session存储数据安全性高。可以无限存储。session是基于cookie存在的,也就是说没有cookie就不会有session。但是session还存在一个隐患,就是session劫持。

    cookie

    cookie的创建

    express为我们提供了api,直接调用api即可

    res.cookie(key,value);
    

    接下来我们就使用cookie发送一条数据

    const express=require('express');
    var server=express();
    server.use('/',function(req,res){
        res.cookie('user','blue');//存储一条数据
        res.send();
    })
    server.listen(8080);
    

    接下来我们开启服务器,在浏览器的地址栏:localhost:8080访问,然后打开控制台——application——cookies,我们就可以看到刚才我们存储的数据{'user','blue'}已经存储在cookie中了


    1.png
    接下来我们使用cookie接受一条数据

    使用cookie接收数据的时候我们需要借助中间件——cookie-parser,所以首先我们需要下载一下

    npm install cookie-parser
    

    同样的,使用cookie接收一条数据,express也为我们提供了api.

    req.cookies()
    

    接下来看以下案例

    const express=require('express');
    const cookieParser=require('cookie-parser');//引入中间件
    var server=express();
    cookieParser.use();
    server.use('/',function(req,res){
        console.log(req.cookies());//输出发送的数据
        res.send('ok');
    })
    server.listen(8080);
    

    同样的,我们再次开启服务器,在浏览器地址栏中输入localhost:8080,然后我们发现在命令行中会输出我们的数据


    2.png
    对cookie进行加密

    yinwei cookie存储数据不安全,所以我们在必要的时候可以对cookie数据进行加密,具体操作如下:

    const express=require('express');
    const cookieParser=require('cookieParser');
    var server=express();
    server.use(cookieParser('abcdefg'));
    server.use('/',function(req,res){
         //设置一个秘钥
         req.secret='abcdefg';
        res.cookie('user','blue',{signed:true});//对cookie数据进行签名
    
          console.log('签名cookie:',req.signedCookies);
          console.log('未签名cookie:',req.cookies);
    });
    server.listen(8080);
    

    然后我们同样开启服务器,使用localhost:8080访问,打开控制台——application,然后我们会发现已经被加密了


    3.png
    session

    使用session除了需要中间件cookie-parser,还需要中间件cookie-session
    所以我们需要下载cookie-session

    npm install cookie-session
    

    接下来我们来看案例

    const express=require('express');
    const cookieParse=require('cookie-parser');
    const cookieSession=require('cookie-session');
    var server=express();
    server.use(cookieParser());
    server.use(cookieSession({
          keys:['aaa','bbb','ccc']
    }));
    
    server.use('/',function(req,res){
        console.log(req.session);
    })
    server.listen(8080);
    

    相关文章

      网友评论

          本文标题:Nodejs中的cookie和session

          本文链接:https://www.haomeiwen.com/subject/exjtmftx.html