统一身份认证系统
统一身份认证系统
在线试用
统一身份认证系统
解决方案下载
统一身份认证系统
源码授权
统一身份认证系统
产品报价
25-2-01 05:37
在现代Web应用中,统一身份认证(Single Sign-On, SSO)是一个非常重要的概念。它允许用户使用一组凭据访问多个相关但独立的软件系统。为了实现这一目标,我们可以使用JSON Web Tokens (JWT) 进行身份验证。
首先,我们需要一个服务器端的应用程序来生成JWT令牌。以下是一个使用Node.js和Express框架的例子:
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();
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 });
}
res.status(401).json({ message: 'Invalid credentials' });
});
app.listen(3000, () => console.log('Server is running on port 3000'));
接下来,客户端需要使用这个令牌来访问受保护的资源。以下是一个简单的JavaScript示例:
async function fetchProtectedResource() {
const token = localStorage.getItem('token');
const response = await fetch('http://localhost:3000/protected-resource', {
headers: {
Authorization: `Bearer ${token}`
}
});
const data = await response.json();
console.log(data);
}
fetchProtectedResource();

在服务器端,我们还需要验证JWT令牌的有效性:
app.get('/protected-resource', (req, res) => {
const token = req.headers['authorization']?.split(' ')[1];
if (!token) {
return res.status(401).json({ message: 'No token provided' });
}
try {
const decoded = jwt.verify(token, secretKey);
return res.json({ message: 'Access granted', user: decoded.username });
} catch (error) {
return res.status(401).json({ message: 'Failed to authenticate token' });
}
});
上述代码展示了如何在统一身份认证系统中使用JWT进行身份验证,以及如何通过简单的示例展示整个流程。