koa2入门——使用cookie

koa2入门——使用cookie

koa2 中操作的cookies是使用了npm的cookies模块,提供了从上下文直接读取、写入cookie的方法:

ctx.cookies.get(name, [options]) 读取上下文请求中的cookie
ctx.cookies.set(name, value, [options]) 在上下文中写入cookie
const router = require('koa-router')();
const request = require('co-request');
const jwt = require('jsonwebtoken');
const jwtKoa = require('koa-jwt')
const util = require('util')
const verify = util.promisify(jwt.verify);
const configUtil = require('../util/configUtil')
const serverConfig = configUtil.loadConfig();


router.all('/api/*', async (ctx, next) => {
    let mapi = `${serverConfig.servicePath}${ctx.originalUrl}`;
    let bodyString = JSON.stringify(ctx.request.body)
    var opt = {
        uri: mapi,
        method: ctx.method,
        headers: ctx.headers,
        body: bodyString
    };

    let result = await request(opt);
    let setcookie = result.headers["set-cookie"];
    // Koa2 提供了从上下文中直接读取和写入 cookie 的方法 ctx.cookies.get(name, [options]) 和 ctx.cookies.set(name, value, [options])
    let v = '';
    if (setcookie) {
        setcookie.forEach(
            function (cookiestr) {

            }
        );
    }
    ctx.status = result.statusCode;
    ctx.body = result.body;
});

##另一个

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

app.use( async ( ctx ) => {

  if ( ctx.url === '/index' ) {
    ctx.cookies.set(
      'cid',
      'hello world',
      {
        domain: 'localhost',  // 写cookie所在的域名
        path: '/index',       // 写cookie所在的路径
        maxAge: 10 * 60 * 1000, // cookie有效时长
        expires: new Date('2017-02-15'),  // cookie失效时间
        httpOnly: false,  // 是否只用于http请求中获取
        overwrite: false  // 是否允许重写
      }
    )
    ctx.body = 'cookie is ok'
  } else {
    ctx.body = 'hello world'
  }

})

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

转载于:https://my.oschina.net/u/3101047/blog/1840101

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值