cookie

用户到商店买东西,商店出了个想法,给用户张会员卡,会员卡有两种方案
一种是上面的,一张卡能用10次折扣,每用一次次数-1。
但有个弊端,会员卡的次数记录在卡上,卡在用户里,要是用户用某些方法改了会员卡的次数就能无限刷
另一种是下面的,会员卡只记录个人信息,商店读取卡里的个人信息来获取折扣次数,并在商店的电脑改变次数,显然更安全

cookie就会服务器发给客户端的一个凭证,如商店给用户发会员卡,而商店通过session来对应cookie以此找到用户信息
cookie是写在客户端上的数据,session是记录在服务器上的数据

设置cookie

const Koa = require("koa");//引入koa构造函数
const app = new Koa();//创建应用
const views = require("koa-views");//引入koa-views
const nunjucks = require("nunjucks");//引入nunjucks引擎
const router = require("koa-router")();

app.use(views(__dirname + "/views",{
    map:{html:"nunjucks"}
}))



router.get("/",async ctx => {
    //cookie是以明值对(类似于对象的键值对)的方式记录在客户端(浏览器)的
    ctx.cookies.set("user","admin");//设置cookie 属性名是user,值是admin
    ctx.body = "cookie";
})

app.use(router.routes());

app.listen(3000,() => {
    console.log("server is running");
});

获取cookie

const Koa = require("koa");//引入koa构造函数
const app = new Koa();//创建应用
const views = require("koa-views");//引入koa-views
const nunjucks = require("nunjucks");//引入nunjucks引擎
const router = require("koa-router")();

app.use(views(__dirname + "/views",{
    map:{html:"nunjucks"}
}))



router.get("/",async ctx => {
    //cookie是以明值对(类似于对象的键值对)的方式记录在客户端(浏览器)的
    ctx.cookies.set("user","admin");//设置cookie 属性名是user,值是admin
    ctx.body = "cookie";
})

router.get("/test",async ctx => {
    let user = ctx.cookies.get("user");//获取相应字段的cookie
    ctx.body = user;
})

app.use(router.routes());

app.listen(3000,() => {
    console.log("server is running");
});

页面显示admin,说明成功拿到了cookie的值

记录网页访问次数

const Koa = require("koa");//引入koa构造函数
const app = new Koa();//创建应用
const views = require("koa-views");//引入koa-views
const nunjucks = require("nunjucks");//引入nunjucks引擎
const router = require("koa-router")();

app.use(views(__dirname + "/views",{
    map:{html:"nunjucks"}
}))



router.get("/",async ctx => {
    //cookie是以明值对(类似于对象的键值对)的方式记录在客户端(浏览器)的
    ctx.cookies.set("user","admin");//设置cookie 属性名是user,值是admin
    ctx.body = "cookie";
})

router.get("/test",async ctx => {
    let count = ctx.cookies.get("count");//获取cookie,但页面第一次加载是获取不到cookie的,要刷新一次才行
    if(count > 0){//判断是否有cookie
        count = ++count;
        ctx.cookies.set("count",count,{
            maxAge:5000//设置cookie过期时间为5s,5s内没有刷新页面cookie就会失效
        });
    }else{
        count = 1;
        ctx.cookies.set("count",1);
    }
    ctx.body = count;
})


app.use(router.routes());

app.listen(3000,() => {
    console.log("server is running");
});




5s后失效

session

原文地址:http://www.cnblogs.com/ben10044/p/16905205.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性