我正在尝试在SailsJS中实现基本的Passport集成。在我的policies.js文件中,我有每个教程提到的默认设置。
'*': ['passport', 'sessionAuth'],
'auth': {
'*': ['passport']
}
我的问题是,转到主页localhost:1337/
似乎没有通过任何一个政策。如果我只是在那里设置false
,那么一切仍然有效。如果我在false
的{{1}}对象上设置auth
,我会在任何'*'
路线上获得Forbidden
。所以,这些政策似乎有效,我只是不明白为什么默认的全能没有。感谢。
答案 0 :(得分:2)
您是使用控制器还是直接提供样本主页中的视图?
如果您直接使用类似的内容提供视图:
// in config/routes.js
module.exports.routes = {
'/': {
view: 'homepage'
}
}
然后你必须修改它并使用控制器以便能够使用策略。
创建到控制器的路径而不是视图:
// in config/routes.js
module.exports.routes = {
// Delete the previous definition and declare a route
// to a controller "index"
'get /': 'indexController.home'
}
创建控制器:
// in api/controllers/IndexController.js
module.exports = {
home: function (req, res) {
// Render the view located in "views/homepage.ejs"
res.view('homepage');
}
};
然后,您将能够管理要应用于文件index
中的控制器config/policies.js
的政策。