zoukankan      html  css  js  c++  java
  • koa 基础(十六)koa 中 session 的使用

    1.app.js

    /**
     * koa 中 session 的使用
     * 1、npm install koa-session --save
     * 2、const session = require('koa-session');
     * 3、app.keys = ['some secret hurr'];
     * const CONFIG = {
     *   key: 'koa:sess',
     *   maxAge: 86400000,
     *   overwrite: true,
     *   httpOnly: true,
     *   signed: true,
     *   rolling: false,
     *   renew: false
     * }
     * 
     * 4、设置 session
     * ctx.session.username = '张三';
     * 5、获取 session
     * ctx.session.username
     */
    // 引入模块
    const Koa = require('koa');
    const router = require('koa-router')(); /*引入是实例化路由 推荐*/
    const render = require('koa-art-template');
    const path = require('path');
    const session = require('koa-session');
    
    // 实例化
    let app = new Koa();
    
    // 配置 koa-art-template 模板引擎
    render(app, {
      root: path.join(__dirname, 'views'), // 视图的位置
      extname: '.html', // 后缀名
      debug: process.env.NODE_ENV !== 'production' // 是否开启调试模式
    })
    
    // 配置session的中间件
    app.keys = ['some secret hurr']; /** cookie的签名 */
    const CONFIG = {
      key: 'koa:sess', /** 默认 */
      maxAge: 86400000, /** cookie的过期时间 【需要修改】*/
      overwrite: true, /** (boolean) can overwrite or not (default true) 没有效果 默认*/
      httpOnly: true, /** true表示只有服务器端可以获取cookie*/
      signed: true, /** 默认 签名 */
      rolling: false, /** 在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false) 【需要修改】*/
      renew: true, /** (boolean) renew session when session is nearly expired 【需要修改】*/
    }
    app.use(session(CONFIG, app));
    
    router.get('/', async (ctx) => {
      // 获取session
      console.log(ctx.session.userinfo);
      await ctx.render('index', {
        list: {
          name: '张三'
        }
      });
    })
    
    router.get('/news', async (ctx) => {
      // 获取session
      console.log(ctx.session.userinfo);
      ctx.body = '新闻页面';
    })
    
    router.get('/login', async (ctx) => {
      // 设置session
      ctx.session.userinfo = '张三';
      ctx.body = '登录成功';
    })
    
    app.use(router.routes());
    app.use(router.allowedMethods());
    
    app.listen(3000);

    .

  • 相关阅读:
    skywalking请求头传输协议
    一篇文章带你搞懂SkyWalking调用链追踪框架
    zuihou-admin-cloud很经典的一个微服务开发平台,能够详细的看里面的视频https://www.kancloud.cn/zuihou/zuihou-admin-cloud/1411215
    skywalking权限验证功能
    哔哩哔哩中Openshift红帽培训
    ElasticSearch中文社区视频教程地址
    浅谈一些有趣的区间问题
    浅谈区间最小点覆盖
    洛谷 P1325 雷达安装
    CF12B Correct Solution?
  • 原文地址:https://www.cnblogs.com/crazycode2/p/10920671.html
Copyright © 2011-2022 走看看