| 123456789101112131415161718192021222324252627282930313233343536373839 | 'use strict';const wxWork = require('../lib/wx_work');module.exports = (options, app) => {    /**     * session判断中间件     *     * @param {function} next - 中间件继续执行的方法     * @return {void}     */    return async function wxWorkAuth(ctx, next) {        try {            // 判断session            const corpid = ctx.params.corpid || ctx.request.body.corpid;            if (!corpid) {                throw '参数有误';            }            const qywx = new wxWork(ctx);            const token = await qywx.getCorpAccessToken(corpid);            if (!token) {                throw '企业微信通信有误';            }            if (ctx.url.indexOf('/wx/work/bindwx') === -1 && !ctx.query.code) {                ctx.redirect(`/wx/work/${ctx.params.corpid}/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();    };};
 |