2016-10-13 13 views
0

私はオンラインクイズのためのアプリケーションを作成しています。サーバー側の技術スタックはノード、エクスプレス、パスポート、モンゴー、マングースです。クライアント側はAngularです。LocalStrategyとCustomStrategyを一緒に実装する方法は?

このアプリケーションでは、2種類の認証とセッションを作成する必要があります。管理者は、固定セッション時間のLocalStrategy(ユーザー名、パスワード)を実装する必要があります。候補者には、個々のセッションと有効期限のあるCustomStrategy(emailID)があります。

どうすれば実装できますか?

答えて

1

私はCustomStrategyとLocalStrategyを一緒に使用しました。

passport.use(new LocalStrategy({ 
    usernameField: 'email' 
}, function(email, password, done) { 
    User.findOne({ 
     email: email.toLowerCase() 
    }, function(err, user) { 
     if (!user) { 
      return done(null, false, { 
       msg: 'Email ' + email + ' not found.' 
      }); 
     } 
     user.comparePassword(password, function(err, isMatch) { 
      if (isMatch) { 
       return done(null, user); 
      } else { 
       return done(null, false, { 
        msg: 'Invalid email or password.' 
       }); 
      } 
     }); 
    }); 
})); 



passport.use(new CustomStrategy(
    function(req, done) { 
     Invite.findById(req.params.id, function(err, invite) { 
      if (err) { 
       console.log(err) 
      } 
      if (!invite) { 
       return done(null, false, { 
        msg: 'Invite not found.' 
       }); 
      } 
      done(null, invite); 
     }); 
    } 
)); 
関連する問題