Ошибка 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