我有一个针对3个用户组的Sails应用程序,站点管理,私有用户和公共用户。
现在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,它将检查用户是否是我们现有的用户。
发布于 2015-07-05 14:27:20
请求对象中有一个名为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.");
}
};
https://stackoverflow.com/questions/31229906
复制相似问题