美文网首页
十一.Koa2中使用cookie

十一.Koa2中使用cookie

作者: qqqc | 来源:发表于2018-02-13 17:57 被阅读0次

开发中制作登录和保存用户信息在本地,最常用的就是cookie操作。比如我们在作一个登录功能时,希望用户在接下来的一周内都不需要重新登录就可以访问资源,这时候就需要我们操作cookie来完成我们的需求。koa的上下文(ctx)直接提供了读取和写入的方法。

  • ctx.cookies.get(name,[optins]):读取上下文请求中的cookie。
  • ctx.cookies.set(name,value,[options]):在上下文中写入cookie。

写入Cookie操作:

先来一个基本的写入cookie。

const Koa  = require('koa');
const app = new Koa();

app.use(async(ctx)=>{
    if(ctx.url=== '/index'){
        ctx.cookies.set(
            'MyName','JSPang'
        );
        ctx.body = 'cookie is ok';
    }else{
        ctx.body = 'hello world'
    }
});

app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
})

好后预览,打开F12可以在Application中找到Cookies选项。就可以找到我们写入的name和value了。

Cookie选项

比如我们要存储用户名,保留用户登录状态时,你可以选择7天内不用登录,也可以选择30天内不用登录。这就需要在写入是配置一些选项:

  • domain:写入cookie所在的域名
  • path:写入cookie所在的路径
  • maxAge:Cookie最大有效时长
  • expires:cookie失效时间
  • httpOnly:是否只用http请求中获得
  • overwirte:是否允许重写
const Koa  = require('koa');
const app = new Koa();

app.use(async(ctx)=>{
    if(ctx.url=== '/index'){
        ctx.cookies.set(
            'MyName','JSPang',{
                domain:'127.0.0.1', // 写cookie所在的域名
                path:'/index',       // 写cookie所在的路径
                maxAge:1000*60*60*24,   // cookie有效时长
                expires:new Date('2018-12-31'), // cookie失效时间
                httpOnly:false,  // 是否只用于http请求中获取
                overwrite:false  // 是否允许重写
            }
        );
        ctx.body = 'cookie is ok';
    }else{
        ctx.body = 'hello world'
    }
});

app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
})

读取Cookie:

上边讲了写入Cookie的具体操作,我们现在试着去读取Cookie。

const Koa  = require('koa');
const app = new Koa();
 
app.use(async(ctx)=>{
    if(ctx.url=== '/index'){
        ctx.cookies.set(
            'MyName','JSPang',{
                domain:'127.0.0.1', // 写cookie所在的域名
                path:'/index',       // 写cookie所在的路径
                maxAge:1000*60*60*24,   // cookie有效时长
                expires:new Date('2018-12-31'), // cookie失效时间
                httpOnly:false,  // 是否只用于http请求中获取
                overwrite:false  // 是否允许重写
            }
        );
        ctx.body = 'cookie is ok';
    }else{
        if( ctx.cookies.get('MyName')){
            ctx.body = ctx.cookies.get('MyName');
        }else{
            ctx.body = 'Cookie is none';
        }
      
    }
});
 
app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
})

相关文章

  • 十一.Koa2中使用cookie

    开发中制作登录和保存用户信息在本地,最常用的就是cookie操作。比如我们在作一个登录功能时,希望用户在接下来的一...

  • cookie和seesion使用

    一、cookie在koa2中的ctx对象直接提供了cookie的set和get方法写入cookie:ctx.coo...

  • pyhton爬虫学习(六):Cookie的使用

    什么是cookie 在爬虫的使用中,如果涉及登录等操作,经常要使用到Cookie。 那什么是Cookie呢? 简单...

  • J2EE--Cookie

    为什么要使用Cookie? 怎样使用Cookie? Cookie使用缺陷 Cookie使用示例 1. 为什么要使用...

  • Cookie测试点汇总

    1.禁止使用Cookie设置浏览器禁止使用Cookie,访问网页后,检查存放Cookie文件中未生成相关文件; 2...

  • IOS中http请求使用cookie(链接)

    IOS中http请求使用cookie

  • js cookie

    设置cookie 获取cookie的值 设置过期时间 删除一个cookie 参考 js中cookie的使用详细分析...

  • cookie的创建、读取和删除

    1, cookie的创建、读取和删除 在JS中,可以使用Document对象的cookie属性操作cookie。 ...

  • js获取cookie

    纯js使用cookie时首先要在 中写入使用cookie的方法,或者将方法另存在指定的js文件中,使用外链引入,...

  • Django 十

    目录 1.cookie,session,token 2.django中cookie 的使用 3.django中se...

网友评论

      本文标题:十一.Koa2中使用cookie

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