要保护您的ExpressJS服务器路由,以便它们只能通过cURL进行访问,您可以使用中间件来实现。以下是一种可能的解决方法,包含了代码示例:
npm install express body-parser
authMiddleware.js
的新文件,并在其中添加以下代码:const authMiddleware = (req, res, next) => {
const userAgent = req.headers['user-agent'];
const isCurlRequest = userAgent && userAgent.includes('curl');
if (!isCurlRequest) {
return res.status(403).json({ error: 'Access denied' });
}
next();
};
module.exports = authMiddleware;
这个中间件将检查请求的user-agent
标头是否包含curl
,如果不是,则返回403禁止访问的错误。
const express = require('express');
const bodyParser = require('body-parser');
const authMiddleware = require('./authMiddleware');
const app = express();
app.use(bodyParser.json());
// 示例路由
app.get('/protected-route', authMiddleware, (req, res) => {
res.json({ message: 'This route is protected and can only be accessed via cURL' });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
在上面的示例中,我们将authMiddleware
中间件应用于/protected-route
路由。只有当请求通过cURL进行时,才能访问该路由。
现在,您的ExpressJS服务器路由将受到保护,并且只能通过cURL进行访问。使用其他HTTP客户端或浏览器访问该路由将返回403禁止访问的错误。
下一篇:保护我的LexikJwt注释路由