今日の昼過ぎ、FacebookのAuth Dialogでエラーが発生して、ユーザがFacebook連携アプリに対してログインできなくなるという騒ぎがありました。これは、Augh Dialogの旧URLを新しいものへとリダイレクトする処理でFacebook側にバグがあった為で、現在は復旧しています。
不具合の詳細
詳細についてはこちらのバグ報告が詳しいです。要点としては、旧URLへユーザを誘導した場合、新しいAuth Dialog URLに対してリダイレクトされるべきところが、クエリパラメータが間違った状態でリダイレクトされるという不具合です。
旧Auth Dialog URL:
https://graph.facebook.com/oauth/authorize?client_id=147366981996453&redirect_uri=http%3A%2F%2Ffacebook.com%2F
不具合発生時のリダイレクト先:
https://www.facebook.com/dialog/oauth?app_id=147366981996453&display=page&next=http%3A%2F%2Ffacebook.com%2F&response_type=code&fbconnect=1
正しいリダイレクト先:
https://www.facebook.com/dialog/oauth?client_id=147366981996453&display=page&redirect_uri=http%3A%2F%2Ffacebook.com%2F&response_type=code&fbconnect=1
この不具合が発生している間、ログインを試みると以下のような画面が表示されていました。暫定対応
これは旧URLからのリダイレクト処理の問題だったため、移行後の新しいURLでAuth Dialogを開けば防ぐことができました。Oklahomerページで紹介した対応方法がそれです。これを紹介した段階では、バグレポートに対する公式見解は以下のようなものでした(いまはステータスが更新されたため、右上のToggle 1 older responsesをクリックしないと表示されません)。
Please note that the graph.facebook.com/oauth/authorize endpoint is deprecated in favor of www.facebook.com/dialog/oauth and that this should always be used to avoid issues.その後、Facebook側の修正が完了し、旧URLからも正しくリダイレクトされるようになり、不具合発生前の状態に戻りました。
和訳:
graph.facebook.com/oauth/authorizeのエンドポイントは www.facebook.com/dialog/oauth への移行のため廃止予定となっていることに注意してください。