我正在尝试在SailsJS中实现基本的Passport集成.在我的policies.js文件中,我有每个教程提到的默认设置.
'*': ['passport', 'sessionAuth'],
'auth': {
'*': ['passport']
}
我的问题是进入主页localhost:1337 /似乎没有通过任何一个策略.如果我在那里设置假,一切仍然有效.如果我在auth对象上为’*’设置了false,我将在任何/ auth / *路由上获得Forbidden.所以,这些政策似乎有效,我只是不明白为什么默认的全能没有.谢谢.
最佳答案 您是使用控制器还是直接提供样本主页中的视图?
如果您直接使用与此类似的内容提供视图:
// 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');
}
};
然后,您将能够在文件config / policies.js中管理要应用于控制器索引的策略.