Files
2026-04-02 00:59:42 +08:00

27 lines
880 B
JavaScript

const jwt = require('jsonwebtoken');
const path = require('path');
const JWT_SECRET = process.env.JWT_SECRET || 'openclaw-secret-key-2026';
const JWT_EXPIRES_IN = process.env.JWT_EXPIRES_IN || '7d';
function authMiddleware(req, res, next) {
const authHeader = req.headers.authorization;
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return res.status(401).json({ code: 401, message: '未授权,请先登录' });
}
const token = authHeader.slice(7);
try {
const decoded = jwt.verify(token, JWT_SECRET);
req.user = decoded;
next();
} catch (err) {
if (err.name === 'TokenExpiredError') {
return res.status(401).json({ code: 401, message: 'Token 已过期,请重新登录' });
}
return res.status(401).json({ code: 401, message: 'Token 无效' });
}
}
module.exports = { authMiddleware, JWT_SECRET, JWT_EXPIRES_IN };