同じ種類のパスポートであっても、複数の名前付き戦略をパスポートに設定することは可能です。私は2つの異なるコンフィグとmyStrategyのインスタンスが、異なる名前、例えば
持つことができます下:後から続いて
passport.use('someStrategy', new myStrategy(options))
passport.use('anotherStrategy', new myStrategy(differentOptions));
を認証する場合は、使用する戦略を指定することができます。
passport.authenticate('someStrategy', ...);
上記を使用して、複数の戦略を設定し、条件に基づいて、使用する戦略を決定することができます。
if (condition){
passport.authenticate('someStrategy', ...);
}
else{
passport.authenticate('anotherStrategy', ...);
}
または:
let strategyToUse = determineStrategy(); //dynamically choose which strategy you want
passport.authenticate(strategyToUse, ...);
ミドルウェアスタックから戦略を削除するには少しトリッキーだと私は考えていない、それを行うには作り付けの機能はありません。ストラテジをスタックから手動でスプライスすることが含まれます。 This質問はスタックからミドルウェアを削除するのに役立つかもしれません。エクスプレス/コネクトを目的としているので、ある程度パスポートにも適用する必要があります。