2
在我的Mac上使用SailsJS 0.10.5(使用npm -g安装),我试图将策略应用于控制器操作,这个错误:导致错误的策略:忽略将路由绑定到无功能控制器的无效尝试
error: In user.isloggedin, ignored invalid attempt to bind route to a non-function controller: { identity: 'isAuthenticated',
globalId: 'isauthenticated',
_middlewareType: 'POLICY: isAuthenticated' } for path: /isLoggedIn
我有一个动作控制器,在配置/ route.js的路线,在配置策略/ policies.js
其他细节
如果我不去在config/policies.js文件中使用isAuthenticated我没有收到此错误。
我正在使用护照本地护照
任何想法我做错了什么?
配置/ policies.js
module.exports.policies = {
'*': true,
UserController: {
'signup': true,
'isLoggedIn': 'isAuthenticated'
},
AuthController: {
'*': true
}
};
配置/ routes.js
module.exports.routes = {
'post /signup' : {
controller: 'UserController',
action: 'signup',
},
'/isLoggedIn' : {
controller : 'UserController',
action : 'isLoggedIn'
}
};
API /控制器/ UserController.js
var passport = require('passport');
module.exports = {
signup: function(req, res) {
User.create(req.params.all()).exec(function(err, user) {
if(err) {
return res.negotiate(err);
}
req.logIn(user, function(err) {
if(err) {
return res.negotiate(err);
}
return res.redirect('/');
});
});
},
isLoggedIn: function(req, res) {
User.findOne({id: req.session.passport.user}).exec(function(err, user) {
if(err) {
return;
}
res.json(user);
});
}
};
API /政策/ isAuthenticated.js
module.export = function isAuthenticated(req, res, next) {
if(!req.isAuthenticated()) {
console.log('403!!!');
return res.send(403, {message: 'Not Authorized' });
}
console.log('asdf');
return next();
};
哇的小号,可以”我相信我错过了这个哈。感谢您的帮助! :) – jlonganecker 2014-10-09 16:50:55