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);

    .

  • 相关阅读:
    64位操作系统安装32位客户端和PL/SQL
    Oracle clob 操作
    Oracle中DBMS_LOB包使用小结
    PLSQL自动断开服务器连接 (转)
    oracle odbc 驱动安装(不安装oracle客户端)
    Broadcom GNSS xxx Geolocaltion Sensor与Windows导航程序的兼容性(转)
    GPS经纬度的表示方法及换算
    odp.net 读写oracle blob字段
    oracle 的数组(转)
    javascript的window.ActiveXObject对象,区别浏览器的方法
  • 原文地址:https://www.cnblogs.com/crazycode2/p/10920671.html
Copyright © 2011-2022 走看看