繁体   English   中英

保护Node.js Express API

[英]Securing Nodejs express API

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

我不需要对个人用户进行身份验证,因此我发现的大多数策略似乎都过分了。 我只是在尝试适当地保护API,因此希望是唯一使用它的人。 不确定我可以使用什么策略从客户那里传递一些东西来识别自己。 谢谢!

我将通过网页以及移动客户端(使用Ionic)访问此API,并将该应用托管在Google Clouds App Engine上。

您可以使用标头或查询字符串进行身份验证。 例如,在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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM