保护Nodejs表达API

时间:2017-07-01 23:17:41

标签: node.js express

我使用Express 4(express.Router)制作一个非常基本的REST API。如何以简单的方式保护此API?

我不需要对个人用户进行身份验证,因此我发现的大部分策略看起来都有点过分。我只是试图适度保护API,所以我希望是唯一使用它的人。不知道我可以用什么策略从客户端传递一些东西来识别自己。谢谢!

我将从网页以及移动客户端(使用Ionic)访问此API,并在Google云端应用引擎上托管该应用。

1 个答案:

答案 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)

您应该使用环境变量而不是硬编码字符串。我只是使用硬编码进行演示。

相关问题