アプリケーションを職場の Facebook アプリとして統合しています。ユーザーが facebook にログインしているかどうかを検出し、ログインしていない場合は認証を求められるようにしたいと考えています。
これまでのところ、facebook SDK とそれが提供するログイン機能をうまく使用できました。ただし、これにより、アプリケーションによって認証ポップアップ ウィンドウが作成され、ほとんどのブラウザーによってブロックされるため、優先タスクは、ポップアップを使用しないように認証ロジックを再実装することです。
Facebook ドキュメントのこのチュートリアルによると、ユーザー ステータス変更要求にイベント サブスクリプションを使用するか (ユーザーがログアウトしている場合は機能しませんでした)、アクセス トークンを取得することで実行できます。問題は、トークンがリクエストパラメーターとしてトップウィンドウに返されることです(ユーザー認証後にリターンURLとして指定したURL)。いくつかのクロスドメインおよびブラウザーの制限が存在するため、クライアント スクリプトを使用して値を取得することができず、行き詰まっています。
ここに関連する質問が寄せられており、共通の問題は、ほとんどのアプリが実行されていることですlocalhost
。ただし、私たちのアプリの場合は、パブリック ドメインによって公開されているローカル Web サーバーにアプリをデプロイしましたが、クロスドメイン制限の問題がまだ残っています。これは、Facebook アプリの構成内でパブリック ドメイン名によって参照されています。ドメインが外部から完全にアクセス可能であることに、私は完全な自信を持っています。
一般的に、私たちのケースは、Facebook ユーザーが使用している間、アプリをホストしたいということです。おそらく、このアプローチは私たちの要件と互換性がないのでしょうか? この問題を回避するためにクロスドメイン通信を構成することは可能ですか? Facebookのログインポップアップを回避する他の方法はありますか?