Laravel Socialite error: "An active access token must be used to query information about the current user."

Laravel Socialite error: "An active access token must be used to query information about the current user."

我正在使用 Socialite 通过 Facebook 验证我的用户。但是,我无法让它工作。我遵循 this 教程,但出现以下错误:

我到处看了看,什么都试过了,但我无法让它工作。这是我的代码:

在services.php中:

'facebook' => [
    'client_id' => '[My App ID]',
    'client_secret' => '[My App Secret]',
    'redirect' => 'http://localhost:8000/auth/facebook/callback/',
],

我的路线:

Route::group(['middleware' => ['web', 'requestlog']], function () {   
    Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider');
    Route::get('auth/facebook/callback/', 'Auth\AuthController@handleProviderCallback');
});

然后在我的 AuthController 中:

use Laravel\Socialite\Facades\Socialite;

public function redirectToProvider()
{
    return Socialite::driver('facebook')->redirect();
}

public function handleProviderCallback()
{
    try {

        $providerUser = Socialite::driver('facebook')->user();
        dd('yay it worked!');

      } catch (RequestException $e) {

      dd($e->getResponse()->json());

    }
}

然后我在FB里有这些设置:

出了什么问题?据我所知,我遵循了所有必要的步骤。我不明白这里出了什么问题。希望我提供了所有必要的信息!

编辑

这是 url 在显示错误的页面上的样子: http://localhost:8000/auth/facebook/callback?code=AQBtnKEqZgImLqN7f3hETe9GptgzFH71sXrV5qmv8Rpo6Oj5-4rl8mBjFPbfkBtiV8w9atV7X4OrWfHyalJkXU-k6lkEv1bly6v5Qxm2es-_RRp8gfoSWOZwjqE34Rvq6__L3aEOERPEa9LSBk_rKVP_cYGZoQeAydRLQUZVGdr_p1SuE1hRZIvZTAZ-zorkPoyyCDNZtDEVFHGRJt_c3kTf_AKE97FVemrXrUDzxaX-rvovKtfGF3u4CvAIt5pe4g7zD30jAWF78ZgjjPpr21MdaGwP5V0tc8g84oz0dR5Nbit7sKeUE-XblWFrQCIKfqs-OJ6rcuzw7iPTx6xrQ9Ev&state=4f924a9974207482c6fce24c1d74705c6688adc0#_=_

我也试过隐身模式,删除cookies等等。同样的结果...

我不想弄乱访问令牌或其他 API,因为我认为这不能解决我的问题。但是现在(我不知道过了多久......)我开始工作了!对于也有此问题的人;我执行了以下步骤,不幸的是它成功了:

  1. 我从 composer.json 中删除了 socialite 并更新了它。
  2. 我重新安装了 socialite。我在 composer.json 中添加了以下行:"laravel/socialite": "2.*".
  3. 然后,当我 运行 代码片段时,出现以下错误:ErrorException in FacebookProvider.php line 89:Undefined index: first_name.
  4. 之后我替换了FacebookProvider.phpwith this file from github中的代码。

不要忘记每次都执行 运行dom composer dump-autoload 因为有时 运行domly 似乎也有帮助。

现在终于可以用了!

编辑

我也注意到 composer update 做得很好。如果这不起作用,请将 socialite 更新到最新版本。这最终解决了我最近遇到的另一个问题。

运行 composer update 然后 composer dump-autoload 为我解决了这个问题。

我注意到 Laravel Socialite 更新了,所以@Markinson 是对的

对我来说它适用于 composer require laravel/socialite:2.0.21 ...从 2.0.20 升级