Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm using Socialite to authenticate my users via Facebook. However, I can't get it to work. I followed this tutorial, but I get the following error:

enter image description here

I looked everywhere and tried whatever, but I can't get it to work. Here's my code:

In services.php:

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

My routes:

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

Then in my 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());

    }
}

Then I have these settings in FB:

enter image description here

enter image description here

What is going wrong? I followed all the necessary steps as far as I know. I don't get what's wrong here. I hope I provided all the necessary information!

Edit

Here's what the url looks like on the page where the error displays: http://localhost:8000/auth/facebook/callback?code=AQBtnKEqZgImLqN7f3hETe9GptgzFH71sXrV5qmv8Rpo6Oj5-4rl8mBjFPbfkBtiV8w9atV7X4OrWfHyalJkXU-k6lkEv1bly6v5Qxm2es-_RRp8gfoSWOZwjqE34Rvq6__L3aEOERPEa9LSBk_rKVP_cYGZoQeAydRLQUZVGdr_p1SuE1hRZIvZTAZ-zorkPoyyCDNZtDEVFHGRJt_c3kTf_AKE97FVemrXrUDzxaX-rvovKtfGF3u4CvAIt5pe4g7zD30jAWF78ZgjjPpr21MdaGwP5V0tc8g84oz0dR5Nbit7sKeUE-XblWFrQCIKfqs-OJ6rcuzw7iPTx6xrQ9Ev&state=4f924a9974207482c6fce24c1d74705c6688adc0#_=_

I also tried in incognito mode, removed cookies and so on. Same result...

like image 744
Markinson Avatar asked Dec 08 '16 14:12

Markinson


2 Answers

I didn't want to mess with access tokens or other API's because I don't think that would be a solution to my problem. But now (after I don't know how long...) I got it to work! For whoever has this problem as well; I did the following steps which out of luck made it work:

  1. I deleted socialite from composer.json and updated it.
  2. I reinstalled socialite. I added the following line in composer.json: "laravel/socialite": "2.*".
  3. Then when I ran the snippet I got the following error: ErrorException in FacebookProvider.php line 89:Undefined index: first_name.
  4. After that I replaced the code in FacebookProvider.php with this file from github.

Don't forget to execute random composer dump-autoload's everytime because sometimes that randomly seems to help as well.

Now it finally works for whatever reason!

EDIT

I also noticed that composer update does a good job. Update socialite to the newest version if this doesn't work. This eventually fixed another problem I had recently.

like image 167
Markinson Avatar answered Nov 01 '22 17:11

Markinson


Running composer update and then composer dump-autoload solved the issue for me.

I noticed Laravel Socialite was updated, so @Markinson is right

like image 5
aphoe Avatar answered Nov 01 '22 16:11

aphoe