LoginSignup
2

More than 5 years have passed since last update.

posted at

SocialiteにおけるInvalidStateExceptionって

拙文より結論

  • 全部なにもかもセッションのせいだ
    • SESSION_DOMAINをちゃんと設定すれば良い

実装も間違ってないのに、ソーシャル先にもログインしてるのに何度やってもInvalidStateException

  • ソースコードを読むとどうもここっぽい
vendor/laravel/socialite/AbstractProvider.php
    /**
     * Determine if the current request / session has a mismatching "state".
     *
     * @return bool
     */
    protected function hasInvalidState()
    {
        if ($this->isStateless()) {
            return false;
        }

        $state = $this->request->session()->pull('state');

        return ! (strlen($state) > 0 && $this->request->input('state') === $state);
    }
  • セッションからstateっていうのをとってくるんだけど、それがnullでエラーになってるっぽい
  • .envに追加してやれば終わるという単純なお話でした
.env
SESSION_DOMAIN=hogehogefoo.com
  • こんな記事でも誰かの役に立てば幸いです

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2