统一身份认证平台在师范大学的应用
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();
// 配置密钥
const secretKey = 'mySecretKey';
// 用户名和密码的映射
const users = {
alice: 'password1',
bob: 'password2'
};
// 验证用户名和密码
function authenticate(username, password) {
return users[username] === password;
}
// 生成JWT令牌
function generateToken(username) {
return jwt.sign({ username }, secretKey, { expiresIn: '1h' });
}
// 登录接口
app.post('/login', (req, res) => {
const { username, password } = req.body;
if (!authenticate(username, password)) {
return res.status(401).json({ message: 'Invalid credentials' });
}
const token = generateToken(username);
res.json({ token });
});
// 受保护的资源接口
app.get('/protected', (req, res) => {
const token = req.headers['authorization'];
if (!token) {
return res.status(401).json({ message: 'No token provided' });
}
jwt.verify(token, secretKey, (err, decoded) => {
if (err) {
return res.status(401).json({ message: 'Failed to authenticate token' });
}
res.json({ message: `Welcome ${decoded.username}` });
});
});
app.listen(3000, () => console.log('Server running on port 3000'));
]]>
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!