HTTP状态码401表示“未授权”(Unauthorized)。当客户端尝试访问需要身份验证的资源时,如果客户端没有提供有效的身份验证凭证,或者提供的凭证不被服务器认可,服务器就会返回401状态码。
const express = require('express');
const app = express();
app.use(express.json());
app.post('/protected-resource', (req, res) => {
const token = req.headers['authorization'];
if (!token) {
return res.status(401).json({ message: 'No token provided' });
}
// 验证token的逻辑
if (token !== 'valid-token') {
return res.status(401).json({ message: 'Unauthorized' });
}
// 权限检查
if (!req.user.isAdmin) {
return res.status(403).json({ message: 'Forbidden' });
}
res.json({ message: 'Access granted' });
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
在这个例子中,服务器首先检查请求头中是否有authorization
字段,如果没有,返回401状态码。接着验证token的有效性,无效时同样返回401。最后,检查用户是否有足够的权限,如果没有,返回403状态码。
领取专属 10元无门槛券
手把手带您无忧上云