如何使用Express JS保护简单的GET请求

时间:2019-07-17 20:05:31

标签: javascript node.js authentication get

我已经使用Express js构建了一个简单的Web服务器。我有一个GET请求来发送任何json响应。现在,任何人都可以从任何地方访问此请求。

如何限制此GET请求具有公共访问权限,我应遵循什么方法来限制此公共访问权限?

请注意,我没有登录或注销功能,只有简单的GET请求。

下面是我的代码---

const express = require('express');
const app = express();
app.get('/', (req, res) => { res.send('Test response'); });
app.listen(3000, () => console.log('Listening on port 3000!'));

1 个答案:

答案 0 :(得分:1)

有多种方法可以保护路线。一种方法可以是IP白名单。

因此,基本上,您可以授予特定IP访问路由的权限。为此,您可以使用express-ipfilter

// Init dependencies
const express = require('express')
const ipfilter = require('express-ipfilter').IpFilter

// Whitelist the following IPs
const ips = ['127.0.0.1']//add the IPs here

// Create the server
app.use(ipfilter(ips, { mode: 'allow' }))
app.get('/', (req, res) => { res.send('Test response'); });
app.listen(3000, () => console.log('Listening on port 3000!'));

有无数种方法可以使某些人进入您的路线:

  1. 私有密钥加密,与您要访问的人共享密钥。每当呼叫您的路线时,您都要检查密钥
  2. 公钥,您可以与他们共享您的证书,他们需要将证书固定在他们的请求模块中并点击路由等。