千家信息网

egg.js开发中ctx返回格式及中间件的示例分析

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,egg.js开发中ctx返回格式及中间件的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ctx 返回格式app->exten
千家信息网最后更新 2025年12月03日egg.js开发中ctx返回格式及中间件的示例分析

egg.js开发中ctx返回格式及中间件的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

ctx 返回格式

app->extend

module.exports = {  // 成功提示  apiSuccess(data = '', msg = 'ok', code = 200) {    this.body = { msg, data };    this.status = code;  },  // 失败提示  apiFail(data = '', msg = 'fail', code = 400) {    this.body = { msg, data };    this.status = code;  },  // 生成token  getToken(value) {    return this.app.jwt.sign(value, this.app.config.jwt.secret);  },  // 验证token  checkToken(token) {    return this.app.jwt.verify(token, this.app.config.jwt.secret);  }};

中间件

app->middleware->auth.js config.middleware = ['errorHandler','auth'];

module.exports = (option, app) => {  return async (ctx, next) => {    //1. 获取 header 头token    const { token } = ctx.header;    if (!token) {        ctx.throw(400, '您没有权限访问该接口!');    }    //2. 根据token解密,换取用户信息    let user = {};    try {        user = ctx.checkToken(token);    } catch (error) {        let fail = error.name === 'TokenExpiredError' ? 'token 已过期! 请重新获取令牌' : 'Token 令牌不合法!';        ctx.throw(400, fail);    }    //3. 判断当前用户是否登录    let t = await ctx.service.cache.get('user_' + user.id);    if (!t || t !== token) {        ctx.throw(400, 'Token 令牌不合法!');    }    //4. 获取当前用户,验证当前用户是否被禁用    user = await app.model.User.findByPk(user.id);    if (!user || user.status == 0) {        ctx.throw(400,'用户不存在或已被禁用');    }    // 5. 把 user 信息挂载到全局ctx上    ctx.authUser = user;    await next();  }}

关于egg.js开发中ctx返回格式及中间件的示例分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

用户 中间件 格式 分析 令牌 问题 示例 开发 信息 更多 帮助 提示 解答 验证 易行 成功 简单易行 全局 内容 小伙 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全证书过期了 县开展网络安全宣传活动总结 数据库系统的运行结构 腾讯游戏的服务器怎么选 软件开发实训内容有哪些 如何自己建个云盘服务器 网络技术达到什么水平可以工作 天龙八部手游登录不到服务器 5款优秀的数据库哪款是你的菜 2支最牛的网络安全股 网络安全工程师的认知 网易版mc模组服务器 网络安全知识宣传资料小学生 网络安全师一年多少工资 最好的游戏服务器 ktv点歌机服务器配置 政府都用哪些数据库 网络安全310分可调剂学校 mysql数据库 日期 安徽统一软件开发检测中心 最常见的数据库种类主要有 智能交通服务器市场规模 服务器的那个气气约会的交友平台 数据库认证网络安全工程师 网络安全为人民的手抄报高中a3 家庭网络服务器异常 软件开发部照片 软件开发过程算法 社区国家网络安全法宣传简报 周工作总结范文软件开发
0