构建高效后端服务中的统一身份认证与综合管理系统
const jwt = require('jsonwebtoken');
const express = require('express');
const app = express();
// 密钥用于签名JWT
const secretKey = 'your_secret_key';
app.post('/login', (req, res) => {
const { username, password } = req.body;
// 验证用户名和密码
if (username === 'admin' && password === 'password') {
const token = jwt.sign({ username }, secretKey, { expiresIn: '1h' });
return res.json({ token });
}
return res.status(401).json({ message: 'Invalid credentials' });
});
app.listen(3000, () => console.log('Server running on port 3000'));
]]>
app.use((req, res, next) => {
const authHeader = req.headers.authorization;
if (!authHeader) return res.sendStatus(401);
const token = authHeader.split(' ')[1];
try {
const decoded = jwt.verify(token, secretKey);
req.user = decoded;
next();
} catch (err) {
return res.sendStatus(403);
}
});
app.get('/protected', (req, res) => {
if (req.user.role !== 'admin') return res.sendStatus(403);
res.json({ message: 'Welcome, admin!' });
});
]]>
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!