質問: 現在、AWSで2台サーバーを立てて、ロードバランシングをしているのですが、facebook loginがうまく実装できません。 ログインしようとすると、 Facebook SDK returned an error: Cross-site request forgery validation failed. Required param "state" missing. 上記のようなエラーが出てしまいます。 サーバー1台の時はうまくいっていたのですが、、 詳しい方、ご教示ください。よろしくお願い致します。
回答: OAuthでログインページへリダイレクトする際に、stateをクッキーに入れて管理していると思いますが、保存したサーバと読み出すサーバが異なると発生するかと思います。 セッション情報を複数台のサーバで共有するか、ロードバランサで同一セッションは同一サーバに振り分けられるようにする必要があるかもしれません。