Ошибка Laravel Socialite: "Активный токен доступа должен использоваться для запроса информации о текущем пользователе".

Я использую Socialite для аутентификации моих пользователей через Facebook. Однако я не могу заставить его работать. Я последовал за этот учебник, но я получаю следующую ошибку:

введите описание изображения здесь

Я везде искал и пытался что-то делать, но я не могу заставить его работать. Здесь мой код:

В 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\[email protected]');
    Route::get('auth/facebook/callback/', 'Auth\[email protected]');
});

Затем в моем 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:

введите описание изображения здесь

введите описание изображения здесь

Что происходит не так? Насколько я знаю, я выполнил все необходимые шаги. Я не понимаю, что здесь не так. Надеюсь, я предоставил всю необходимую информацию!

Edit

Вот как выглядит 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 и так далее. Тот же результат...

Ответ 1

Я не хотел связываться с токенами доступа или другим API, потому что я не думаю, что это было бы решением моей проблемы. Но теперь (после того, как я не знаю, как долго...) Я получил это, чтобы работать! Для тех, у кого есть эта проблема; Я сделал следующие шаги, которые из-за удачи заставили его работать:

  • Я удалил socialite из composer.json и обновил его.
  • Я переустановил светскую. Я добавил следующую строку в composer.json: "laravel/socialite": "2.*".
  • Затем, когда я запустил фрагмент, я получил следующую ошибку: ErrorException in FacebookProvider.php line 89:Undefined index: first_name.
  • После этого я заменил код в FacebookProvider.php с этим файлом из github.

Не забывайте выполнять случайные composer dump-autoload каждый раз, потому что иногда это случайным образом также помогает.

Теперь он, наконец, работает по любой причине!

ИЗМЕНИТЬ

Я также заметил, что composer update выполняет хорошую работу. Обновите социальность до последней версии, если это не сработает. Это в конечном итоге устранило еще одну проблему, которую я недавно имел.

Ответ 2

Запуск composer update, а затем composer dump-autoload решил проблему для меня.

Я заметил, что Laravel Socialite обновлен, поэтому @Markinson прав

Ответ 3

Об ошибке, о которой вы упоминаете, относится к access_token, которая недействительна. Вам нужно создать токен постоянного доступа, чтобы заставить эту работу работать.

Это ссылка, за которой вы можете следовать. (facebook: постоянный токен доступа к странице?) и я думаю, вы должны использовать прямые вызовы Http-графика api, чтобы заставить все это работать.

Ответ 4

Для меня он работал с composer require laravel/socialite:2.0.21... обновлением от 2.0.20