Authentication 如何在Sails js中创建基于路由的安全策略?

Authentication 如何在Sails js中创建基于路由的安全策略?,authentication,sails.js,Authentication,Sails.js,我有一个适用于3个用户组的Sails js应用程序,分别是站点管理员、私人用户和公共用户 现在,管理员的url模式如下所示 'get /admin/foo': 'fooController.viewAll', 'post /admin/foo': 'fooController.add', 'put /admin/foo/:fooID': 'fooController.edit', 已验证用户的Url模式 'get /businesses/foo': 'fooController.viewAll

我有一个适用于3个用户组的Sails js应用程序,分别是站点管理员、私人用户和公共用户

现在,管理员的url模式如下所示

'get /admin/foo': 'fooController.viewAll',
'post /admin/foo': 'fooController.add',
'put /admin/foo/:fooID': 'fooController.edit',
已验证用户的Url模式

'get /businesses/foo': 'fooController.viewAll',
'post /businesses/foo': 'fooController.add',
'put /businesses/foo/:fooID': 'fooController.edit',
公共用户的Url模式

'get /public/foo': 'fooController.viewAll',

我希望有一个基于url模式对用户进行身份验证的策略,如果url类似于/admin,它将检查用户是否为admin?否则,如果/business,它将检查用户是否是我们现有的用户。

请求对象中有一个名为
originalUrl
的字段。您可以在策略中访问它,并根据url进行决定。策略类似于以下内容。[我假设您知道如何定义策略并将其添加到配置中。]

module.exports = function(req, res, next) {
        var originalUrl = req.originalUrl;
        var tokenizedOriginalUrl = originalUrl.split('/');
        if(tokenizedOriginalUrl[0] == 'admin'){
            // do something
            next(null);
        }
        else if(tokenizedOriginalUrl[0] == 'business'){
            // do something
            next(null);
        }
        else if(tokenizedOriginalUrl[0] == 'public'){
            // do something
            next(null);
        }
        else{
            next("Access prohibited.");
        }
};