拙文より結論
- 全部なにもかもセッションのせいだ
- 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
- こんな記事でも誰かの役に立てば幸いです