我使用Express 4(express.Router)制作一个非常基本的REST API。如何以简单的方式保护此API?
我不需要对个人用户进行身份验证,因此我发现的大部分策略看起来都有点过分。我只是试图适度保护API,所以我希望是唯一使用它的人。不知道我可以用什么策略从客户端传递一些东西来识别自己。谢谢!
我将从网页以及移动客户端(使用Ionic)访问此API,并在Google云端应用引擎上托管该应用。
答案 0 :(得分:2)
您可以使用标头或查询字符串进行身份验证。例如,在Express上设置中间件以检查标头X-TOKEN
是否包含您选择的字符串。
以下是您可以使用的代码:
function checkAuthHeader (req, res, next) {
let token = req.headers['X-TOKEN'];
if (token && token == "RANDOM_GENERATED_STRING") {
next();
} else {
res.status(403).end('Unauthorized.')
}
}
然后您可以将此功能用作这样的中间件(确保在声明路线之前放置它):
app.use(checkAuthHeader)
您应该使用环境变量而不是硬编码字符串。我只是使用硬编码进行演示。