使用sails作为REST API来启动护照js集成

我正在尝试在本地mysql数据库中使用护照js进行身份validation。 我正在使用邮递员扩展来testing应用程序。 我发送两个字段,即用户名和密码进行身份validation。 当任何一个字段为空时,响应以json格式显示为

{ "message": "Missing credentials", "user": false } 

但是,当我通过两个字段的值我得到500内部服务器错误。

错误:发送500(“服务器错误”)响应:TypeError:无法读取在d:\ Test \ api \ controllers \ AuthController.js:25:23的未定义属性'消息'在Strategy.strategy.error(d:\ Test (D:\ Test \ node_modules \ passport-local \ lib \ strategy.js:94:17)在尝试时(d:\ Test \ node_modules \ passport \ local \ lib \ strategy.js: (d:\ Test \ node_modules \ passport \ lib \ middleware \ authenticate.js:342:7)在Object.module.exports.login(():\ node_modules \ passport \ lib \ middleware \ authenticate.js: (C:\ Users \ \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ lodash \ dist \ lodash.js:729:21):d:\ Test \ api \ controllers \ AuthController.js:37: (C:\ Users \ \ AppData \ Roaming \ npm \ node_modules \ sails \ n)在routeTargetFnWrapper(C:\ Users * \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ router \ bind.js:179:5) (C:\ Users \ \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ express \ lib \ router \ index.js:138:11)上的节点模块:\ express \ lib \ router \ index.js:164:37) (C:\ Users * \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ express \ lib \ router \ index.js:145:5)at nextRoute(C:\ Users * \ AppData \ Roaming \ npm (C:\ Users \ \ AppData \ Roaming \ npm \ node_modules \ sails \ node_modules \ express \ lib \ router \ index)下的path:\ node_modules \ sails \ node_modules \ express \ lib \ router \ index.js:100:7。 j:167:11)在C:\ Users \ \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ router \ bind.js:187:7在alwaysAllow(C:\ Users * \ AppData \ Roaming \ npm \ node_modules (C:\ Users * \ AppData \ Roaming \ npm \ node_modules \ sails \ lib \ router \ bind.js:179:5)[TypeError \ sails \ lib \ hooks \ policies \ index.js:207:11) :不能读取未定义的属性'消息'**

下面是我的AuthController

 var passport=require('passport'); login:function(req,res){ passport.authenticate('local', function(err, user, info) { if ((err) || (!user)) { return res.send({ message:info.message, user: user }); } req.logIn(user, function(err) { if (err) res.send(err); return res.send({ message:"User Loged In",//info.message, user: user }); }); })(req, res); } }; 

我正在使用下面的模型进行testing

 module.exports = { tableName: 'users', connection:'TestDB', autoCreatedAt:false, autoUpdatedAt:false, attributes: { username:{ type:'string', required:true }, password:{ type:'string', required:true }, toJSON: function() { var obj = this.toObject(); delete obj.password; return obj; } } }; 

包含用户名和密码的表还有其他字段,如国家。 有什么方法可以使用护照进行身份validation吗?

你做了这个链接的第六步吗?

 module.exports.http = { middleware: { passportInit : require('passport').initialize(), passportSession : require('passport').session(), order: [ 'startRequestTimer', 'cookieParser', 'session', 'passportInit', 'passportSession', 'myRequestLogger', 'bodyParser', 'handleBodyParserError', 'compress', 'methodOverride', 'poweredBy', 'router', 'www', 'favicon', '404', '500' ], } }; 

也许你想看到sails-hook-sa​​npassport ,既方便又快捷