重複の可能性:
Play フレームワークに # =を追加して、OAuth2 経由で Facebook 認証後にリダイレクトしますか?
他の誰かがこれが起こるのを見ましたか?
Facebook PHP SDK と Javascript を使用して Facebook キャンバス アプリを作成しています。
ユーザーを OAuth 認証フローに通すと、ブラウザーの URL に自動的に this が追加されることに気付きました。その"#_=_"
ため、私の URL は次のようになります。
http://apps.facebook.com/xxxxxxxxxxxx/#_=_
アプリのプロファイル ページにリダイレクトすると、URL は次のようになります。
http://www.facebook.com/apps/application.php?id=xxxxxxxxxxxx#_=_
を使用してリダイレクトしています
echo "<script type='text/javascript'>top.location.href='$appcanvasurl';</script>"
キャンバス URL に
echo "<script type='text/javascript'>top.location.href='$appprofurl';</script>"
アプリのプロフィール ページ用。
では、なぜこれ#_=_
が追加されるのでしょうか。
アップデート:
tracker のこのバグによると、これは仕様によるものであり、 に値を指定してredirect_uri
もこれは変わりません。
そして、そのページの公式のFacebookの返信によると(投稿を表示するには、Facebookにログインする必要があります):
これは、潜在的なセキュリティの脆弱性を防ぐため、「設計による」とマークされています。
一部のブラウザーは、リダイレクト先の新しい URL の末尾に URL のハッシュ フラグメントを追加します (その新しい URL 自体にハッシュ フラグメントがない場合)。
たとえば、example1.com が example2.com へのリダイレクトを返す場合、example1.com#abc にアクセスするブラウザは example2.com#abc にアクセスし、example1.com のハッシュ フラグメント コンテンツは example2 のスクリプトからアクセス可能になります。 .com。
ある認証フローを別の認証フローにリダイレクトできるため、あるアプリの機密認証データに別のアプリからアクセスできるようになる可能性があります。
これは、リダイレクト URL に新しいハッシュ フラグメントを追加して、このブラウザの動作を防ぐことで緩和されます。
結果の URL の美学またはクライアント側の動作が問題になる場合は、window.location.hash (または独自のサーバー側リダイレクト) を使用して、問題のある文字を削除することができます。