美文网首页KOA
9.2KOA Session

9.2KOA Session

作者: 帶頭二哥 | 来源:发表于2020-01-06 02:15 被阅读0次

Session

导言

  • koa2 原生功能只支持 Cookies,不支持 Session 功能。只能用第三方中间件实现。
  • session 选择方案
    • 如果session数据量很小,可以直接存在内存中
    • 如果session数据量很大,则需要存储介质存放session数据

MySql数据库存储Session方案

所需中间件

  • koa-session-minimal

提供存储介质的读写接口

  • koa-mysql-session

koa-session-minimal 中间件提供MySQL数据库的 session 数据读写操作

项目实现

安装
  • 安装 Mysql 数据库
  • 安装中间件
        npm install koa-session-minimal --save
        npm install koa-mysql-session  --save
    
  • 实战案例
        // 引入 koa 模块
        const Koa = require('koa')
        // 创建 koa 应用
        const app = new Koa()
        // session 中间件接口
        const session = require('koa-session-minimal')
    
        // session mysql 实现
        const MysqlSession = require('koa-mysql-session')
    
        // 配置存储session信息的mysql
            let store = new MysqlSession({
            user: 'root',
            password: '123456',
            database: 'koa',
            host: '127.0.0.1',
        })
    
        // 存放sessionId的cookie配置
        let cookie = {
            maxAge: '', // cookie有效时长
            expires: '',  // cookie失效时间
            path: '', // 写cookie所在的路径
            domain: '', // 写cookie所在的域名
            httpOnly: '', // 是否只用于http请求中获取
            overwrite: '',  // 是否允许重写
            secure: '',
            sameSite: '',
            signed: '',
        }
    
        // 使用session中间件
        app.use(session({
            key: 'SESSION_ID',
            store: store,
            cookie: cookie
        }))
    
        app.use( async ( ctx ) => {
    
            // 设置session
            if ( ctx.url === '/set' ) {
                ctx.session = {
                    user_id: Math.random().toString(36).substr(2),
                    count: 0
                }
                ctx.body = ctx.session
            } else if ( ctx.url === '/get' ) {
                // 读取session信息
                ctx.session.count = ctx.session.count + 1
                ctx.body = ctx.session
            } 
    
        })
        // 启动应用
        app.listen(3000)
    
    

相关文章

  • 9.2KOA Session

    Session 导言 koa2 原生功能只支持 Cookies,不支持 Session 功能。只能用第三方中间件实...

  • session 学习总结

    参考: Session Handling Session Functions (一)session session...

  • cookie,session使用

    session使用: //启动session的初始化 session_start(); //注册session变量...

  • PHP的session机制

    PHP机制使用session 开启session --- session_start()...

  • vue中sessionStorage使用

    设置session,setItem 获取session,getItem 删除session , removeItem

  • 在三个jsp页面中传递信息

    通过session 不通过session 通过hidden --能不用session就不用session --hi...

  • PHP中的session操作

    一、session的基本操作 session详解 二、session过期时间 三、session存储到Redis ...

  • Flask框架3

    自定义响应 Session session依赖cookie,cookie里面有session_id session...

  • laravel中session的使用

    可以使用request的session方法调用session 通过session类获取session: 使用use...

  • PHP session

    使用session 在PHP中使用session非常简单,先执行session_start方法开启session,...

网友评论

    本文标题:9.2KOA Session

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