12345678910111213141516171819202122232425262728293031323334 |
- '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();
- };
- };
|