是否可以将sailjs控制器暴露给来自特定IP地址的请求而无需身份验证,同时要求对其他人的请求进行身份验证
答案 0 :(得分:1)
是的,你可以做到。
以下是
在policy.js中,在路由/控制器方法上添加特定策略。
'*': ['isSpecificIP']
现在进入 api / policies 文件夹并创建名为 isSpecificIP.js 的文件
在其中添加以下代码 -
module.exports = function (req, res, next) {
if(req.ip == "::ffff:127.0.0.1" || req.ip == "127.0.0.1")
next();
else
return res.json(401, {err: 'Unauthorized'});
};
上面的代码只允许来自localhost的请求传递。上面的代码也将处理来自IPv6地址的请求。
如果您已完成此操作但服务器仍未接受您的请求,则
使用“未授权”部分打印您的IP地址
return res.json(401, {err: 'Unauthorized - ' + req.ip});
确保您已重新启动服务器
答案 1 :(得分:0)
是。
您可以为允许所有IP地址请求的路由创建策略。在该策略中,您可以使用req.ip检查IP地址。过滤后,您可以使用res.redirect()
将特定请求路由到另一个网址。