私のサイトのユーザーの一部がLaravel\Socialite\Two\InvalidStateException
を経験しています。 Laravel Socialite:InvalidStateException への返信で概説されている手順を実行しましたが、問題を解決できませんでした。これを経験しているユーザーはごくわずかです。
HAProxyロードバランサーの後ろに2つのfpm/nginxドッカーコンテナーがあります。
これは、この post ですでに解決されている socialite パッケージの無効な状態の問題のようです。
一部のユーザーが別のURL( https://www.example.com または https://example.com )でWebサイトにアクセスしているため、不一致が発生しています。セッションの状態」。
Larvel5.3以降を使用している場合...SESSION_DOMAIN=http://example.com
ファイルに.env
を追加します
他のバージョンの場合は、config/session.php
ファイルに移動し、ドメインを追加します。 'domain' => 'www.example.com'
変更をすぐに適用します。 'php artisan cache:clear'
と'composer dump-autoload'
を実行します。これで問題が解決することを願っています。
ロードバランサーが原因で問題が発生していることは間違いありません。これが私の理論です:
スティッキーセッション:ロードバランサーがスティッキーセッションを適切に構成していない場合、一部のユーザーがサーバー1で新しいセッションを開始し、次のリクエストでサーバー2で終了する可能性があります。 Laravel\Socialite\Two\InvalidStateException
リクエストタイムアウト:これはわかりませんが、セッションの存続期間が、Laravel\Socialite\Two\InvalidStateException
をスローするプロセスを完了するのに十分でない可能性があります
たぶん、laravelセッションストレージをデフォルトのテキストファイル構成ではなく分散型データベースに変更すると、例外が解決されます。
本番環境ファイルにSESSION_DOMAIN = http://example.com を追加するだけで、config /session.phpによって取得されます。ローカル開発の場合、それは必要ありません。