|
|
const admin = require('../models/admin'); |
|
|
|
|
|
|
|
|
function authMiddleware(req, res, next) { |
|
|
|
|
|
if (req.path.startsWith('/v1/admin/')) { |
|
|
return next(); |
|
|
} |
|
|
|
|
|
|
|
|
if (req.path.startsWith('/v1/api-keys') || |
|
|
req.path.startsWith('/v1/invalid-cookies') || |
|
|
req.path.startsWith('/v1/refresh-cookies')) { |
|
|
|
|
|
const authHeader = req.headers.authorization; |
|
|
if (!authHeader || !authHeader.startsWith('Bearer ')) { |
|
|
return res.status(401).json({ |
|
|
success: false, |
|
|
message: '未提供认证token' |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
const token = authHeader.split(' ')[1]; |
|
|
|
|
|
|
|
|
const result = admin.verifyToken(token); |
|
|
if (!result.success) { |
|
|
return res.status(401).json({ |
|
|
success: false, |
|
|
message: '无效的token' |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
req.admin = { |
|
|
username: result.username |
|
|
}; |
|
|
} |
|
|
|
|
|
next(); |
|
|
} |
|
|
|
|
|
module.exports = authMiddleware; |