我試圖通過向他們的電子郵件地址發送激活碼來確認用戶的電子郵件地址。當用戶點擊激活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