客户端存储cookie、以及localStorage和sessionStorage和cookie三者的异同

一、在koa中使用cookie
cookie是http协议下,服务端或者脚本可以维护客户端信息的一种方式

  1. 储存cookie的值:
    ctx.cookies.set(name, value, [options])

  2. 获取cookie的值:
    ctx.cookies.get(name, [options])

  3. options常用设置:
    1) maxAge 表示从 Date.now() 得到的毫秒数
    2) expires cookie 过期的 Date
    3) path cookie 路径, 默认是'/'
    4) domain cookie 域名
    5) secure 安全 cookie 设置后只能通过https来传递cookie
    6) httpOnly 服务器可访问 cookie, 默认是 true
    7) overwrite 表示是否覆盖以前设置的同名的 cookie (默认是false).
    如果是 true,是在同一个请求中设置相同名称的所有 Cookie
    实际应用中,根据需求设置options参数

入口主文件
主目录/index.js

// 1、用户登录并验证;
// 2、设置cookies保存用户名与密码,免登录
// 3、换肤

const Koa = require("koa");//加载koa
const static = require("koa-static");//加载静态资源
const views = require("koa-views");//加载视图
const Router = require("koa-router");//加载路由
const koaBody = require("koa-body");//加载处理post请求与文件上传模块
const md5 = require("md5");//md5加密
let musicData = require("./data/music.json");//加载音乐数据

// 实例化
let app = new Koa();
let router = new Router();

// 使用中间件
app.use(koaBody());
app.use(static(__dirname+"/static"));
// app.use(views(__dirname+"/views"),{ //写成这样,报错找不到pug, 没注意写顺手了
//     extension:"pug"
// });
app.use(views(__dirname+"/views",{
   
    extension:"pug"
}));

// 重定向
router.get("/",ctx=>{
   
    ctx.redirect("/login");
});

// 登录页路由
router.get("/login",async ctx=>{
   
    let cookieInfo = ctx.cookies.get("isLogin");//获取保存的cookie
    if (cookieInfo) {
   //如果cookie存在
        let serverInfo = md5("tom"+"12345");//对登录用户名和密码进行加密
        if (serverInfo == cookieInfo) {
    //登录的用户名和密码再与存储的cookie比较,如果相等就跳转到列表页
            ctx.redirect("/list");
        }
    }
    // 不存在cookie,就进入登录页
    await ctx.render("login");
});

//检查页(检测用户登录)
router.post("/checkUser",async ctx=>{
   //post提交方式,如果是get方式,用户名与密码会暴露在地址栏(不安全)
    // username与pwd是login.pug中用户名与密码的文本输入框的name属性值
    // let username = ctx.request.body.username;
    // let pwd =  ctx.request.body.pwd;
    console.log(ctx.request.body);//koa-body中的方法,用来获取参数

    // 验证用户名与密码是否正确
    if (ctx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值