这不是保护 API 路由的方法。我猜你在这里使用的是 express.js 服务器。
例如:您有一个 API 端点 /getUserData。使用 express.js,它看起来像这样:
app.get("/getUserData/:user", ()=> {
res.json({
message: "I am a protected API endpoint."
});
});
为了保护这个端点,你应该创建一个中间件来检查用户是否被允许进入这个 API 端点。让我们创建一个示例。首先创建一个函数,我们称之为“auth”:
function auth(req, res, next){
let user = req.params.user;
if(user == "admin"){
next(); //This means to continue its request
}else {
res.status(403).json({ message: "Sorry, but you are not allowed }); //Status 403 means forbidden.
}
}
好的,现在我们有了一个非常简单的身份验证中间件,我们只需要将它实现到我们需要的每个 API 端点。
app.get("/getUserData/:user", auth, ()=> {
res.json({
message: "I am a protected API endpoint."
});
});
我已将auth 中间件添加到此路由以保护它。
你现在可以测试它。使用localhost:3000/api/getUserData/admin,您应该会看到该消息。如果你选择不同的东西然后admin 你会得到一个错误