問題タブ [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.
node.js - Passport-facebook の callbackUrl と function の違い
node/expressでpassport-facebookを使用するときにFacebook認証がどのように機能するかを調べようとしています。
callbackURL と以下に続く関数について混乱しています。
コールバック URL の設定の違いを説明してもらえますか (これは、ログイン試行が成功した場所ですか? と、ログイン後に呼び出されるように見える関数 (accessToken、...) です。
node.js - ログインした Strategy ユーザーの特定
私のアプリでは、Facebook とローカルの 2 つの戦略で Passport を使用しています。ユーザーがアプリへのログインに使用した戦略 (つまり、 Passport内の情報から判断する) を何らかの方法 (プロパティまたは状態変数) で特定することはできますか? req
ログインしているユーザーに関連付けられているプロバイダーを示すオブジェクトに、何らかのプロパティまたはその他の設定がありますか? 可能であれば、これを追跡するためにフロー変数を設定するよりも、Passport からこれを取得することを本当に好みます。
passport.js - Passport を使用して Facebook ストラテジー経由でアプリにログインするときに、期限切れの AccessToken を再検証する (または新しいものを取得する)
さまざまな状況下で、Facebook の内部 AccessToken (Facebook API のさまざまな機能などで使用される) が無効になる場合があります。たとえば、ユーザーが Facebook ログインに依存するアプリケーションを使用するセッション間でパスワードを変更した場合。他にもいくつかのケースがあります。
ただし、次のようなエラーが発生して、アプリケーションが本質的にクラッシュしますdata={"error":{"message":"Error validating access token: Session does not match current stored session. This may be because the user changed the password since the time the session was created or Facebook has changed the session for security reasons.", "type":"OAuthException", "code":190, "error_subcode":460}}
。
Passport の Facebook 戦略は AccessToken を使用し、ユーザーが Passport を介してログイン/認証されるとすぐにアプリで利用できるようになります。ただし、問題は、上記のエラーが発生した場合の対処方法です。Facebook は複雑な再認証フローを PHP の例として挙げていますが、一般的な意味では、Facebook でアプリを再認証する必要があります。
問題は、Facebook ページから Facebook アプリを削除し、Facebook ログインに依存するアプリケーションに再認証を強制した場合でも、Passport + Facebook ストラテジーがブラウザーのセッション ストレージから最後の既存の AccessToken を取得しているように見えることです。(少なくとも、私が Mozilla/Fx 26 で見ているものです)。アプリを何度か再承認しましたが、デバッグして Passport が返すものを確認すると、常に同じ無効な AccessToken が返されます。AccessToken がセッション ストレージに存在する場合、Passport は Facebook から新しいものを取得する代わりに、それを取得するようです。
この種のエラーが発生した場合、Passport + Facebook Strategy 内で、保存されている AccessToken を本質的に無視またはオーバーライドし、常に Facebook に新しいものを要求する方法はありますか? それを実現する方法はまったく明確ではありません。助けてくれてありがとう。
更新: 戦略を呼び出すためのサンプル コードにrefreshToken
はパラメーターがあります。これは何をしますか?このパラメーターで可能な解決策はありますか?
node.js - Passport-facebook に接続できません
私のアプリケーションでは、facebook アカウントでログインを追加しようとしています。とりあえずローカル攻略でパスポートを使っているので、フェイスブック攻略を追加してみました。Facebook 開発者サイトに登録して、トークンとシークレットを取得しました。公式のパスポート github からソース コードの一部をコピーして貼り付けるだけで、個人的な使用に適応します。呼び出し時に問題が発生します
Facebook のログイン ページにリダイレクトされず、ここで立ち往生しています。アプリケーションが応答を待っているか、リダイレクトされるのを待っていますが、何も起こりません。Facebook 開発者ページでコールバック URL を提供しようとしましたが、それなしで試しました (コールバックを渡すと、パスポート戦略がスローされます)。
何が欠けていますか?
私のアプリケーション:
私のルート:
私の戦略:
[編集]
コールバックのルーティングをこれに変更すると、問題が解決します。しかし、私はその理由を理解していません...
node.js - Passport と Facebook を使用する NodeJS
私はほとんど Facebook 経由で Passport 認証を行っていますが、私のモデルの FacebookStrategy コールバックは呼び出されていないため、プロファイル情報を取得できません。私は何かを見逃しているに違いありませんが、それを理解する運がありません。
私のApp.js
マイルート
私のモデル
node.js - PassportJS - FacebookTokenStrategy は 404 を返します
PassportJS を使用して、ブラウザーとモバイル クライアントの両方の FB 認証を処理しています。Web ユーザーの場合、Passport FacebookStrategy を使用していますが、これは意図したとおりに機能しています。また、モバイル クライアントが API にアクセスできるようにしたいと考えています。これを容易にするために Passport FacebookTokenStrategy を使用しようとしています。これは、1つの小さな問題で機能しているようです。モバイル クライアントがサーバーに対して GET 要求を行うと、FacebookTokenStrategy が使用され、verify コールバック関数が呼び出されます。検証機能では、ユーザー プロファイルが使用可能であるため、認証が成功したことがわかります。ただし、モバイル クライアントへの応答で 404 の HTTP ステータスが返されます。これを適切に構成する方法がわかりません。これは私が現在試していることです:
Passport.authenticate('facebook-token'); を提供する必要がありますか? 追加の「onsuccess」コールバックを使用しますか? これは Web クライアントのコンテキストでは理にかなっていますが、facebook-token 戦略を使用してこれをどのように処理する必要があるかはわかりません。