web-dev-qa-db-ja.com

Laravel Socialite:InvalidStateException(時々)

私のサイトのユーザーの一部Laravel\Socialite\Two\InvalidStateExceptionを経験しています。 Laravel Socialite:InvalidStateException への返信で概説されている手順を実行しましたが、問題を解決できませんでした。これを経験しているユーザーはごくわずかです。

HAProxyロードバランサーの後ろに2つのfpm/nginxドッカーコンテナーがあります。

11
Webnet

これは、この 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'を実行します。これで問題が解決することを願っています。

4
Waqas Bukhary

ロードバランサーが原因で問題が発生していることは間違いありません。これが私の理論です:

  1. スティッキーセッション:ロードバランサーがスティッキーセッションを適切に構成していない場合、一部のユーザーがサーバー1で新しいセッションを開始し、次のリクエストでサーバー2で終了する可能性があります。 Laravel\Socialite\Two\InvalidStateException

  2. リクエストタイムアウト:これはわかりませんが、セッションの存続期間が、Laravel\Socialite\Two\InvalidStateExceptionをスローするプロセスを完了するのに十分でない可能性があります

たぶん、laravelセッションストレージをデフォルトのテキストファイル構成ではなく分散型データベースに変更すると、例外が解決されます。

3
Adrian Piña

本番環境ファイルにSESSION_DOMAIN = http://example.com を追加するだけで、config /session.phpによって取得されます。ローカル開発の場合、それは必要ありません。

0
user573