You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
779 B
JavaScript

const AuthUtils = require('../utils/auth')
const { Account } = require('../entity/account')
const { getManager } = require('typeorm')
module.exports = async function (req,res,next) {
try{
const session = req.cookies.IM_SESS
if(!session) return res.error('未登录',401)
try{
var payload = AuthUtils.decode(session)
}catch(err) {
return res.error(err.message,401)
}
req.auth_session = payload
const manager = getManager()
const detail = await manager.findOne(Account,{ aid:payload.aid })
if(!detail.isActive) return res.error('账号不可用',403)
req.account_detail = detail
}catch(err) {
console.error('登录认证中间件报错:',err);
return res.error('登录凭证已过期',401)
}
next()
}