Sailjs从特定IP地址暴露控制器

时间:2016-07-02 17:09:35

标签: controller sails.js

是否可以将sailjs控制器暴露给来自特定IP地址的请求而无需身份验证,同时要求对其他人的请求进行身份验证

2 个答案:

答案 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()将特定请求路由到另一个网址。