25 lines
667 B
JavaScript
25 lines
667 B
JavaScript
const { verifyToken } = require('../utils')
|
|
const { apiPrefix } = require('../config')
|
|
|
|
let whitePath = [
|
|
'/login',
|
|
'/get-pub-pem'
|
|
].map(item => (apiPrefix + item))
|
|
|
|
const useJwt = async ({ request, res }, next) => {
|
|
const { path, headers: { token } } = request
|
|
if(whitePath.includes(path)) return next()
|
|
if(!token) return res.fail({ msg: '未登录', status: 403 })
|
|
const { code, msg } = verifyToken(token)
|
|
switch(code) {
|
|
case 1:
|
|
return await next()
|
|
case -1:
|
|
return res.fail({ msg, status: 401 })
|
|
case -2:
|
|
return res.fail({ msg: '登录态错误, 请重新登录', status: 401, data: msg })
|
|
}
|
|
}
|
|
|
|
module.exports = useJwt
|