我为3个用户组提供了一个Sails js应用程序,网站管理员,私人用户&公共用户。
现在url模式如下所示,Admin,
'get /admin/foo': 'fooController.viewAll',
'post /admin/foo': 'fooController.add',
'put /admin/foo/:fooID': 'fooController.edit',
经过身份验证的用户的网址格式
'get /businesses/foo': 'fooController.viewAll',
'post /businesses/foo': 'fooController.add',
'put /businesses/foo/:fooID': 'fooController.edit',
公共用户的网址格式,
'get /public/foo': 'fooController.viewAll',
我希望有一个策略来根据网址模式对用户进行身份验证,如果网址是/ admin,那么检查用户是否为admin?否则如果/ business它将检查用户是否是我们现有的用户。
答案 0 :(得分:2)
请求对象中有一个名为originalUrl
的字段。您可以在策略中访问它,并根据网址决定。政策将类似于以下内容。[我假设您知道如何定义策略并将其添加到配置中。]
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.");
}
};