問題タブ [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 投票する
1 に答える
1244 参照

facebook - パスポート コールバックでローカルホストにリダイレクトせずに heroku にデプロイする

アプリをHerokuにデプロイしましたが、「facebook でログイン」をクリックすると、 http://localhost:3000/# =にリダイレクトされます。私は次のことを試しました(最初は現時点での場所です):

しかし、次を使用して展開する場合:

また

次のエラーでFacebookに転送されます:

指定された URL はアプリケーション構成で許可されていません: 指定された URL の 1 つ以上がアプリの設定で許可されていません。ウェブサイトの URL またはキャンバスの URL と一致するか、ドメインがアプリのドメインのいずれかのサブドメインである必要があります。

本当に明白な何かが欠けていますか?!

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

javascript - Passportのfacebook認証がうまくいかない

Facebookログインを持つnodeJSアプリケーション(エクスプレス)があります。ここで説明されているパスポート-フェイスブック認証を使用していますパスポート-フェイスブック。私のログインは数週間前はまだ機能していましたが、今は何かが変わっています. Facebook が何かを変更したのか、それとも私が変更したのかはわかりません。ログインコードには触れていないので、Facebook側の何かだと思います。

これが私の認証コードです:

基本的に、アプリのルートからユーザーを自動的に認証し、認証後に /calendar にリダイレクトする必要があります。

症状は次のとおりです。 root に移動しようとして、以前に Facebook でログインしていない場合、通常の Facebook ログイン画面が表示されます。しかし、その画面には、次の警告があります。

指定された URL はアプリケーションの設定で許可されていません 指定された URL の 1 つ以上がアプリケーションの設定で許可されていません。ウェブサイトの URL またはキャンバスの URL と一致するか、ドメインがアプリのドメインのいずれかのサブドメインである必要があります。

これに関連するすべての質問を確認しましたが、Facebook アプリの構成でアプリ ドメインとサイト URL を適切に構成していないことが原因のようです。しかし、それらはすべて問題ないはずです: アプリ ドメイン: localhost、サイト URL: http://localhost:3000/

それで、なぜそれについて不平を言っているのかわからないのですか?サブドメインはありません。私が持っているルートは (/, /calendar, /calendar/events) だけです。最後の /calendar/events ルートは ajax ルートです。とにかく、Facebook の資格情報を入力してログインすると、ページは次の URL を持つ空のページにリダイレクトされます: ( https://www.facebook.com/login.php?login_attempt=1 )。開発者ツールを開くと、コンソールに次のエラー メッセージが表示されます。

リソースのロードに失敗しました: サーバーは 500 のステータスで応答しました (内部サーバー エラー)

しかし、今は実際にログインしています。ルートまたは /calendar に移動すると、正しいページに移動し、適切にログインしていることがわかります。どうやらログインは機能しますが、リダイレクトと許可された URL にはいくつかの問題があります。私はただ何が何で、なぜなのか分からないようです。データベースとしてmongodDBを使用しています。

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

node.js - パスポートモジュールを使用してFacebookのプロフィールイベントを取得する

私は、パスポートモジュールを使用してユーザーが参加する将来のイベントを取得しようとしていますが、明らかに何かが欠けています。私は Facebook API に従い、次のように必要な許可を得ました。

しかし、次のようなイベントを印刷しようとすると:

私はこのエラーが発生します:

写真で完全に正常に機能しているため、に置き換えようとしましたnamevalue、他の多くの方法を試しましたが、これを機能させることができません...何か助けてください。

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

facebook - Facebook が「有効な OAuth リダイレクト URI」のリストで「cancel_url」を検索しない

初期設定:

私のアプリは facebook の oauth システムを使用しており、本番、テスト、開発の 3 つの異なる環境があります。Facebookアプリの詳細設定に、3つの有効なリダイレクトURLをすべてリストしました(人々がここここで行うように):

さらに、基本設定では、アプリには次のものがあります。


これまでに何が起こるか:

  1. 本番環境を使用する場合は、すべて問題ありません。

  2. テスト中または開発中の場合 (どちらも または にはありませんApp domains) Site URL:

    を。ユーザーが私のサイトにログインし、すでに Facebook にログインしている場合、すべてがうまくいきます。

    b. ユーザーが私のサイトにログインしているが、Facebook にまだログインしていない場合、Facebook は次のように文句を言います。

    /li>

後者のケースの詳細:

  1. その時点でのブラウザーの現在の URL は次のとおりです (正確ではありません。わかりやすくするためnextに一部をデコードしました)。cancel_url

    /li>
  2. お気づきかもしれませんが、redirect_uricancel_urlドメインは完全に等しく、この値 ( http://myapp-dev.herokuapp.com) は のリストに存在しValid OAuth redirect URIsます。

  3. ここを手動でcancel_url運用ドメインに変更すると、facebook のエラーは消えます。

  4. パラメータを手動で完全に削除cancel_urlすると、エラーも消えます。

  5. メッセージを無視して資格情報を入力し、ログイン ボタンを押すと、リダイレクトされhttps://www.facebook.com/login.php?login_attempt=1、他に何も起こりません。


感想:

  1. cancel_urlのリストにfacebook が存在することを確認していないようですValid OAuth redirect URIs

  2. すでに述べた手動のハッキングは、通常のユーザーには明らかに受け入れられないため、別のアイデアを求めます.

  3. さまざまな環境に対応するさまざまなFacebookアプリを使用することも、イデオロギー的には良い考えではありません.


回避策:

  1. コメントで@CBRoeが述べたように:代わりに独自のトップレベルドメインを使用しようとしました(および値herokuapp.comとして使用)、それは機能しました。これは最初の質問を解決しませんが、良い回避策です。App domainsSite URL
0 投票する
1 に答える
35 参照

passport.js - Passport-facebook が必要とするアプリ関連の情報を Facebook から取得するにはどうすればよいですか?

http://passportjs.org/docs/facebookで、次のように述べています。

Facebook 認証を使用するには、まずFacebook Developersでアプリを作成する必要があります。アプリを作成すると、アプリ ID とアプリ シークレットが割り当てられます。アプリケーションはリダイレクト URL も実装する必要があります。アプリケーションへのアクセスが承認された後、Facebook はユーザーをこの URL にリダイレクトします。

https://developers.facebook.com/ (テキスト内のリンク) を探索するのに少し時間を費やしましたが、すぐには追跡できませんでした:

  1. どのタイプのアプリを作成するか (「ウェブサイト」は私にとって最も明白に見えますが、それは単に「私にとって最も明白に見える」レベルです)。

  2. アプリのアプリ ID を確認する場所。

  3. アプリのアプリ シークレットを確認する場所。

その情報をどのように作成/読み取ることができますか?