私はMEANアプリケーションを開発中です。私は認証、ローカル、Facebook、Googleの戦略にパスポートを使用しています。角クライアントでパスポート - フェイスブックのコールバックを処理する方法は?
私はangularjsクライアントを使用しています。すべてのルーティングはクライアントで処理されます。私はサーバーのデータを消費しています。
パスポート - フェイスブック戦略を使用する場合は、以下のコードをパスポートのドキュメントごとにノードサーバーで使用しています。 「フェイスブックを使用してサインイン」ボタンをユーザーがクリック
<a href="/auth/facebook" class="btn"><i class="fa fa-facebook"></i> Sign in using Facebook</a>
は、クライアントが最終的に検証するためのFacebookのページにユーザーをリダイレクトします「/ AUTH/Facebookの」ルートにアクセスするときに私が直面しています
app.get('/auth/facebook',passport.authenticate('facebook-auth', { scope : ['email'] }));
app.get('/auth/facebook/callback',passport.authenticate('facebook-auth', {
successRedirect : '/home',
failureRedirect : '/login',
scope:['email']
}));
問題がありますユーザーの資格情報
検証が成功した後、ユーザーは "successRedirect"値で定義されているように "/ home"へのルートにリダイレクトされます。
ここで、成功または失敗のリダイレクトを定義する代わりにカスタムコールバック関数を使用したいと思います。それは以下のようになります。クライアントは、「認証/ログインfacebook /コールバック」ルートを呼び出していないとして、私はここに直面しています
根本的な問題は、私はカスタムコールバックの上に使用することはできません、それはFacebookので呼ばれています。 したがって、上記のコールバックの応答をクライアント側で捕捉するのを待っているハンドラはありません!!
クライアントでjson形式の応答を取得して、サーバー側のリダイレクトを回避し、facebookによる認証が成功した後にクライアントにメッセージとユーザー名を渡す方法が必要です。
私はパスポートをあきらめようとしています。多くのコードを削除する前に、可能な解決策をお探しください!
おかげ
ありがとうございました。 – Designeer
@Designeerよろしくお願いします。 D – onel0p3z
@ onel0p3z私は角度の代わりにreactjsで同じことをやっています。私のサーバーはノード上にあり、私はエクスプレスを使用しています。私は正常に私のサーバー側でパスポート - フェイスブックを実装しました。今、私は '/ auth/facebook'をアンカータグを通して反応させると呼んでいます。しかし、私はそれがサーバーでのみ処理され、サーバー上のresponse.redirectを介して処理したくないので、反応の応答を返す方法がわかりません。このシナリオをどのように処理するかお勧めしますか? – Vijay