Sailsjs政策没有生效

时间:2014-05-16 04:22:10

标签: sails.js

我在Sails 0.9.16中遇到了策略/路由问题。无论我做什么,/用户路径都不受保护。显然我做错了。

我有以下路线:

'/': {
    view: 'home/index'
},

'get /login': {
view: 'login'
},

'post /login': {
  controller: 'UserController',
  action: 'login'
},

以下政策:

module.exports.policies = {
   '*'    : false,
   user   : {
   '*': 'isAuthenticated'
   },
   login  : {
   '*' :true 
   },
}

从路由和策略中,您可以看到我希望/ login route不受保护,并且/ user / *路径受到保护。我的isAuthenticated.js是用新帆项目创建的股票。

UserController正确匹配密码并设置req.session.authenticated = true。

我迷失了如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

AFAIK,Sails的政策正在按照控制器/行动应用,而不是按路线应用。另外,检查here是否有合适的结构。因此,您的config/policies.js应该会变成:

module.exports.policies = {
  UserController: {
    '*': 'isAuthenticated',
    login: true
  }
}

答案 1 :(得分:0)

自Sails开始,0.11政策可应用于custom routes

'/foo': {policy: 'myPolicy'}

政策的蓝图路线:

'/foo': [{policy: 'myPolicy'}, {blueprint: 'find', model: 'user'}]

查看政策路线:

'/foo': [{policy: 'myPolicy'}, {view: 'foobar'}]