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 的策略