私は、電子メールアドレスにアクティベータコードを送信してユーザーの電子メールアドレスを確認しようとしています。ユーザがアクチベータURL(GETメソッド)をクリックすると、サーバはアクティベータコード+ユーザ名を比較し、それを処理しようとします。パスポートjs(GETメソッド付き)
私はこのようなGETメソッドを使用しています:
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');
});
});
})
);
};
しかし、サーバーの応答は次のとおりです:
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
がある{ message: 'Missing credentials'}
それはパスポートのJSだとメソッドのparamsは、いくつかの競合を持って取得します。
私は正しいですか?私はそれのために何をすべきですか?
?私はパスポート認証でURLのパラメータにアクセスできないと思います! –
が機能していない、私のパラメータがアクチベータで、ユーザ名が電子メールとパスワードではありません –
@ShriramManoharanこれらのフィールド以外の場所も表示されませんでした。https://github.com/jaredhanson/passport-local – abdulbarik