Laravel Socialite错误:"必须使用活动访问令牌来查询有关当前用户的信息."

Mar*_*son 10 php facebook facebook-php-sdk laravel laravel-5.2

Socialite用来通过Facebook验证我的用户.但是,我无法让它发挥作用.我按照教程,但收到以下错误:

在此输入图像描述

我到处寻找并尝试过任何事情,但我无法让它发挥作用.这是我的代码:

在services.php中:

'facebook' => [
    'client_id' => '[My App ID]',
    'client_secret' => '[My App Secret]',
    'redirect' => 'http://localhost:8000/auth/facebook/callback/',
],
Run Code Online (Sandbox Code Playgroud)

我的路线:

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

然后在我的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());

    }
}
Run Code Online (Sandbox Code Playgroud)

然后我在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#_=_

我也尝试过隐身模式,删除cookie等等.结果相同......

Mar*_*son 10

我不想搞乱访问令牌或其他API,因为我认为这不会解决我的问题.但是现在(在我不知道多久之后......)我开始工作了!对于有这个问题的人; 我做了以下步骤,运气不好使它工作:

  1. 我从composer.json中删除了socialite并更新了它.
  2. 我重新安装了名媛.我在composer.json中添加了以下行:"laravel/socialite": "2.*".
  3. 然后,当我运行该片段时,我收到以下错误:ErrorException in FacebookProvider.php line 89:Undefined index: first_name.
  4. 之后我用FacebookProvider.php github的这个文件替换了代码.

不要忘记composer dump-autoload每次都执行随机,因为有时随机似乎也有帮助.

现在它最终无论如何都有效!

编辑

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


aph*_*hoe 5

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

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