4
我正在尝试使用Passport和Compound Js。我已经在初始化文件中配置了护照。如下与Passport一起使用CompoundJs
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy({usernameField: 'email'},
function(email, password, done) {
User.findOne({ email: email }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
module.exports.passport = passport;
而在我的路线文件我有:
var passobj = require('./initializers/initialize_passport')
exports.routes = function (map) {
map.post("api/users", passobj.passport.authenticate('local', {successRedirect: 'user#index', failureRedirect: 'user#failureoccured'}));
};
当我试图通过传递一个有效的用户名和密码,才能从萤火虫打电话,我得到了以下错误:
Undefined action undefined#undefined
任何人都可以请告诉我如何使用护照复合Js。
而且我还穿着复合护照,但不知道我是否可以将它用于本地策略。提前致谢。
你有没有找到解决方案? – Chausser 2013-12-09 02:48:53
您是否创建了护照 - 本地目录? – 2015-06-10 13:18:18
复合护照实施了本地策略。查看local.js中的compound-passport/strategies文件夹,除了一个愚蠢的len变量用来检查应该将多少个参数传递给你的verifyPassword函数外,它非常简单。将verifyPassword函数放入您的用户模型中。 – user254694 2015-08-14 08:01:49