我试图通过向他们的电子邮件地址发送激活码来确认用户的电子邮件地址。当用户点击激活URL(GET方法)时,服务器会比较激活码+用户名并尝试处理它。GET方法的护照js
我使用GET方法是这样的:
router.get('/activator/:username/:activator', function(req, res, next){
passport.authenticate('activator', function(err, user, info){
if (err) {console.log('Error info: ', info);}
else if (!user) {console.log('User not found: ' , info)}
else {console.log('User activated')}
res.redirect('/');
})(req, res, next)
});
而且activator.js
是:
var LocalStrategy = require('passport-local').Strategy;
var User = require('../models/user');
module.exports = function(passport){
passport.use('activator', new LocalStrategy({
usernameField: 'username',
passwordField: 'activator'
},
function(username, password, done) {
User.findOne({username: username , activator: password},
function(err, user){
if (err){
return done(null, false, 'User not found.');
}
user.activate = true;
user.save(function (err) {
if (err) return handleError(err);
return done(null, user, 'Persistence Registration successful');
});
});
})
);
};
但服务器的响应是:{ message: 'Missing credentials'}
看来护照js和GET方法PARAMS有一些冲突。
我是对的吗?我应该为此做些什么?
莫非是真正的问题?我猜想URL中的参数在护照认证中不可访问! –
不工作,我的PARAMS是激活和用户名没有电子邮件和密码 –
@ShriramManoharan我没有看到任何地方,除了那些领域也可以看到他们的文档https://github.com/jaredhanson/passport-local – abdulbarik