sails.js – SailsJS中的非功能默认策略

我正在尝试在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中管理要应用于控制器索引的策略.

点赞