SailsJS 中的非功能性默认策略
Non functioning default policy in SailsJS
我正在尝试在 SailsJS 中实现基本的 Passport 集成。在我的 policies.js 文件中,我有每个教程提到的默认设置。
'*': ['passport', 'sessionAuth'],
'auth': {
'*': ['passport']
}
我的问题是,转到主页 localhost:1337/
似乎没有通过任何一项政策。如果我只是在那里设置 false
,一切仍然有效。如果我在 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
.
中管理应用于控制器 index
的策略
我正在尝试在 SailsJS 中实现基本的 Passport 集成。在我的 policies.js 文件中,我有每个教程提到的默认设置。
'*': ['passport', 'sessionAuth'],
'auth': {
'*': ['passport']
}
我的问题是,转到主页 localhost:1337/
似乎没有通过任何一项政策。如果我只是在那里设置 false
,一切仍然有效。如果我在 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
.
index
的策略