提问者:小点点

Laravel社交名媛: InvalidStateExcture在AbstractProvider.php行199:


出于某种原因,当我试图用脸书或谷歌登录Laravel社交名媛时,我得到了这个例外:

AbstractProvider中的InvalidStateException。php第199行:

当我的SocialiteController试图从facebook驱动程序获取用户时,会引发异常。

public function callback(SocialAccountService $service, $provider)
    {
        try {
            var_dump(Socialite::driver('facebook')->user());

以下是AbstractProvider.php中似乎抛出实际异常的部分:

public function user()
{
  if ($this->hasInvalidState()) {
     throw new InvalidStateException;
}

我一直在学习这个教程https://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-twitter-login.html#.WFK0BfnhCUk.由于某种原因,登录在上周之前一直运行良好。

我读了其他文章说我应该改变配置/session.php所以域不是空的,而是我的当前域(在我的情况下localhost:8000因为我用XAMPP运行本地),并刷新Laravel缓存等。但这并没有奏效。


共2个答案

匿名用户

我发现我的Laravel应用程序cookie丢失,这导致了InvalidStateExcure异常。

我还注意到,每次HTTP请求后都不会重新创建cookie。当我将Config/Session.php中的域值从当前值(localhost)更改为null(默认值)时,Cookie将再次重新创建。

匿名用户

尝试

session()->put('state', $request->input('state'));
$user = Socialite::driver('facebook')->user();