web-dev-qa-db-ja.com

Passport-jsカスタム戦略を作成する方法

独自の戦略を作成したいと考えています。

私が持っています client_idclient_secretおよび関連するメタデータ。実行の流れも知っています。そこで、独自の戦略を作成し、認証用のカスタムロジックを追加したいと思います。

passport-strategy を見ましたが、自分の戦略を実装する方法を理解していません。誰でも説明できますか?

15
Sam

ここには2つのオプションがあります。

認証用のカスタムロジックがある場合、独自の戦略を作成する必要はありません...このロジックを構築できる passport-custom 戦略を使用できます。ドキュメントによると:

カスタム認証戦略は、選択したカスタムロジックによってユーザーを認証します

配布したい戦略を実際に構築したくない場合(例:OpenIDの実装など)、独自の戦略を実装する意味はわかりません。

ただし、独自の戦略を実装するには、パスポート戦略の抽象クラスを実装する必要があります。 npmページの代わりに Github ページを調べることをお勧めします。このページには、起動と実行の方法に関する詳細情報があります。基本的に、独自の戦略を立てる手順は次のとおりです。

  1. サブクラス戦略
  2. プロトタイプでauthenticate()メソッドを定義することで認証を実装します(カスタムロジックがあります)。
  3. 拡張メソッド(.success、.fail、.pass、.redirect、または.error)のいずれかを呼び出す

最後に、npmモジュールとしてパックする必要があります。すべての準備が整ったら、Node.jsプロジェクトで独自の戦略を要求できます。

私が言ったように、私はあなたがあなた自身の戦略に行く正当な理由を持っている必要があると思います。 passport-custom を試してみます。

16
javierfdezg