'use strict'; module.exports = (options, app) => { /** * session判断中间件 * * @param {function} next - 中间件继续执行的方法 * @return {void} */ return async function wechatAuth(ctx, next) { try { // 判断session if (!ctx.session.wechatToken && ctx.query.code) { const token = await ctx.app.wechat.oauth.getAccessToken(ctx.query.code); ctx.session.wechatToken = token.data; } const wechatToken = ctx.session.wechatToken; if (!wechatToken) { ctx.redirect('/wx/oauth?redirect_uri=' + encodeURIComponent(ctx.protocol + '://' + ctx.host + ctx.request.url)); return; } // 同步系统维护信息 await ctx.service.maintain.syncMaintainData(); if (ctx.session === null) { throw '系统维护中~'; } } catch (error) { console.log(error); ctx.body = error; return; } await next(); }; };