JSON-based REST API 身份验证是指使用JSON格式的数据在RESTful API中进行身份验证和授权的机制。这种认证方式通常通过HTTP请求的头部或主体传递JSON格式的凭证信息。
Authorization: Bearer <token>
格式原因:出于安全考虑,令牌设置了有效期 解决:
原因:令牌被篡改或签名密钥不匹配 解决:
原因:浏览器同源策略限制 解决:
const jwt = require('jsonwebtoken');
function generateToken(user) {
return jwt.sign(
{
id: user.id,
email: user.email,
role: user.role
},
process.env.JWT_SECRET,
{ expiresIn: '1h' }
);
}
const jwt = require('jsonwebtoken');
function authenticateToken(req, res, next) {
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1];
if (!token) return res.sendStatus(401);
jwt.verify(token, process.env.JWT_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}
async function fetchProtectedData() {
const response = await fetch('/api/protected', {
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`,
'Content-Type': 'application/json'
}
});
if (!response.ok) {
// 处理认证错误
}
return await response.json();
}
JSON-based REST API身份验证提供了灵活、标准化的方式来保护API资源,是现代Web和移动应用开发中的首选认证方案。
没有搜到相关的文章