問題タブ [passport-facebook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
550 参照

node.js - node.js (MEAN スタック) アプリケーションでパスポートを使用してログイン/登録する際の Facebook リダイレクト URL のエラー

Facebook のログイン機能と登録機能をアプリケーションに実装しており、Facebook にアクセスしてユーザーが情報を入力することはできますが、コールバックを機能させることはできません。以下のコードをpassport.jsに入力しました(明らかに情報をx'ingしています):

次のコールバック URL が index.js に含まれています。

アプリケーションを Facebook のログイン ページ onClick に直接表示させることはできますが、ユーザーが電子メール アドレスとパスワードを facebook に入力すると、アプリケーションはリダイレクト時にリロードできず、その人を当社のホームページに移動させることができません。リダイレクトが発生し始めますが、アプリケーションをロードしようとするとエラーが発生します。リダイレクト フィールドの 1 つを間違って使用していませんか? 余談ですが、facebook 開発者アプリケーション ページで有効な OAuth リダイレクト URI として何を設定すればよいでしょうか?

0 投票する
2 に答える
4206 参照

facebook - Facebook ログインがユーザー プロファイルの「未定義」フィールドを返し、電子メールが返されません。MEANJs + Passport-facebook

私は Meanjs.org ボイラープレートを使用していますが、Facebook サインアップでサインアップ ページに戻ります。以下は、これまでに行った手順です。

1) Facebook アプリサイト URLの設定

http://localhost:3000/

およびOAuthのコールバックURI

http://localhost:3000/auth/facebook/callback

2) APP_ID と APP_Secret を Client_ID と Client_Secret として配置する

3) コードは次のとおりです。

--ルート

-- oauthCallback 関数、

-- Passport-Facebook戦略

};

4) デバッグ

oauthCallback 関数でエラーをログに記録すると、次のように返されます。

1TypeError: 未定義のプロパティ '0' を読み取れません

Passport-Facebook モジュールで Facebook がプロファイルとして返すものは次のとおりです。

{ id: 'Id_of_the_person', username:未定義, displayName: 'Full_name_of_person', name: { familyName:未定義, givenName:未定義, middleName:未定義}, 性別:未定義, profileUrl:未定義, プロバイダー: 'facebook', _raw: ' {"name":"Full_name_of_person","id":"Id_of_the_person"}', _json: { name: 'Id_of_the_person', id: 'Id_of_the_person', accessToken: 'access_token_value', refreshToken: undefined } }

ユーザーの電子メールを含め、Facebook から正しいユーザー プロファイルを取得する方法を教えてくれる人はいますか?

どうもありがとう。

0 投票する
1 に答える
258 参照

javascript - ユーザーが Facebook で認証された後、ユーザーが認証されたことをどのように示しますか?

このチュートリアルに従って、Node と Passport を使用して Facebook 認証を実装しています。

チュートリアルとドキュメントの両方がこれを行うように言っています:

しかし、ユーザーは自分が認証されているかどうかをどのように知るのでしょうか? ユーザーがログインしているかどうかを示すデータをフロントエンドに送信し、更新に使用できるようにしたいと思います。たとえば、ナビゲーションバーです。

私が理解していることから、Facebook での認証プロセスは次のように機能します。

  1. リクエストを送信しGET /auth/facebookます。
  2. ヒットルート。
  3. 304 RedirectURL を添えて Facebook ポータルに送り返します。
  4. コールバック URL を使用して Facebook ポータルにリクエストを送信します。
  5. ユーザーがポータルで [同意する] をクリックします。
  6. Facebook304 Redirectは、URL がコールバック URL である を返します。
  7. リクエストはコールバック URL (この場合は ) に送信されますGET /auth/facebook/callback
  8. cbpassport.use(obj, cb)実行されます。
  9. A304 Redirectが返され、URL は成功または失敗に応じて/orになります。/login
  10. 要求が/またはに送信され/loginます。

ログインしたユーザーでフロントエンドを更新する方法がわかりません。

$http.get().then()データを受け取るがないため、これは機能しません。


いくつかのクエリパラメーターを追加してみました:

しかし、それは私にとってはうまくいきません。URLバーには次のように表示されますがhttp://localhost:3000/?foo=bar#_=_、これは何も記録しません:

私がするとき、それは動作しますsuccessRedirect: '/home?facebook=true'。しかし、 の中では、それ以外のものsendFileを送り返すことはできません。試してみると、次のエラーが表示されます。おそらく、ファイルを送り返し、いくつかのヘッダーを設定しているために、別のヘッダーで何かを送り返そうとしています。だから私は何をすべきかわからない。res.send('Authenticated with Facebook')Error: Can't set headers after they are sent.sendFile


私がたどり着いたアプローチは、runブロックを使用することです:

  1. これが最善のアプローチかどうかはわかりません。
  2. HTTPリクエストを期待していないため、テストが台無しになり、常にそうしたくない場合にセッションとCookieが設定されます。
0 投票する
1 に答える
1229 参照

javascript - パスポート用に複数の Facebook 戦略を使用できますか?

以下のpassport-facebook関連の操作を別の方法で処理したいです。

  1. Facebookでサインアップ
  2. Facebookでログイン
  3. 既存のアカウントを Facebook に接続する

「サインアップ」のために、私がしたい/確認したいこと:

  • ユーザーが既に存在する場合 (facebook oauth id に基づく)、ログインにリダイレクトします。
  • ユーザーが既に存在する場合 (Facebook プロファイルの電子メール アドレスに基づく)、電子メールでサインインするようにユーザーに促し、Facebook アカウントに接続します。
  • 新しいユーザーを作成してサインインします。

「ログイン」と「アカウントの接続」については、他の一連のチェック/操作を実行したいと考えています。

私は、facebook のパスポート ドキュメントと、パスポート フェイスブック モジュール、および関連するスタック オーバーフローに関する一連の質問を見てきましたが、これを実装する方法にまだ苦労しています。

異なる callbackURL とオプションを使用して (パスポート経由で) 異なる Facebook 戦略を実装するにはどうすればよいですか?

0 投票する
1 に答える
2993 参照

node.js - TypeError: 未定義のパスポートのプロパティ '0' を読み取れません-facebook

Facebook を使用してログインしようとすると、このエラーが返されます。このリンクのアドバイスに従いましたが、まだ運がありません。Passport-facebook にメールが届かない

これがコードです

{ scope: 'email' }スコープを からに変更しようとしましたが{ scope: ['email'] }、まだうまくいきません。

0 投票する
1 に答える
361 参照

node.js - node.js Express Passport経由でログインした後にセッションを記憶する方法

node.js Express の Passport モジュールを使用して、訪問者が Facebook 経由でログインした後、リダイレクトを正常に取得しました。以下は私のコードの一部です:

私の質問は次のとおりです。セッションをどのように覚えていますか? .nextTick() 関数から値を渡す方法はないようです。また、Cookie を登録することもできません...

0 投票する
0 に答える
170 参照

angularjs - MEAN: node.js 側で Facebook にログインした後、angular アプリに戻る

私の node.js サーバーは、私の Web アプリケーションがサービスを提供しているホスト/ポートとは異なるホスト/ポートにあり、パスポート + facebook-strategy を使用してログインしたいと考えています。

nodejs からログインできました (サーバー コードが正常に動作していると仮定します) が、ログイン後に Web アプリケーションに戻る最善の方法が見つからないようです。

私の最初のことは、いくつかのng-click関数でコントローラーを介してこのAJAX呼び出しを行うことでしたが、機能しませんでした(そして、ここに理由があります

そして今、Web アプリケーションを制御することなく、サーバーの応答からリダイレクトを取得しています。

これはサーバー側で起こっていることです:

ここではっきりしていることを願っています。何か案は?