/* * @Description: 检查用户是否已经登陆 * @Autor: kindring * @Date: 2021-12-22 16:24:37 * @LastEditors: kindring * @LastEditTime: 2022-01-26 14:07:50 * @LastDescript: */ const progressField = require('../map/progressField'); const {notLogin} = require('../tools/result'); const log = require('../logger').logger('checkLogin', 'info'); /** * 检查是否登录 * @param sessionField * @param {'json'|'view'} type 返回的数据类型 * @returns */ function checkLogin( sessionField = progressField.session_hfy, type = 'json') { return function(req, res, next) { let session = req.session[sessionField] if (!session) { log.warn(`未登陆,请求接口,该接口验证类型${type}`) // 类型 let resAction; switch (type) { case 'view': resAction = { action: 'redirect', params: [302, progressField.loginUrl[sessionField]] } break; case 'json': default: return notLogin(res, '请登录后在进行尝试'); break; } return res[resAction.action](...resAction.params) } req.session._garbage = Date(); req.session.touch(); next(); } } module.exports = checkLogin;