2016-12-13 2 views
3

Я создаю веб-приложение в своей локальной системе (Ubuntu-14.04 64Bit), используя laravel 5.3. Я использовал Socialite для входа из социальных сетей. Я настроил G +, Facebook, GitHug. Я использую Chromium в качестве браузера по умолчанию. Наконец, проблема в том, я получаюLaravel Socialite InvalidStateException в строке AbstractProvider.php 200

InvalidStateException в AbstractProvider.php линии 200

часто. я попытался

PHP кэш мастеровых: ясный

PHP мастеровых конфигурации: четкое

композитор свалка-автозагрузку

они помогают решить проблему временно, опять же проблема рейза.

пожалуйста, помогите мне в этом вопросе ..

ответ

0

Если AbstractProvider.php линия 200 пожаров, за исключением, когда состояние пользователя нет означает, что пользователь не может быть создан.

Сначала проверьте свой код, когда вы получите информацию у поставщика (facebook, github), если вы создаете пользователя, и вы его возвращаете.

Если вы вошли в систему и вошли в свое приложение, и вы удалили пользователя из таблицы пользователя, не забудьте удалить также данные из таблицы социальной рассылки.

0

У меня такая же проблема, и я много читал об этом, которые зависят, если URL-адрес, на котором вы находитесь в момент запроса на вход, имеет www. в начале или нет. В config\services.php, если у вас есть перенаправление, установленное как http://sitename.tld/callback/facebook, oauth работает, если вы отправляете запрос на вход с sitename.tld, а если вы попробуете www.sitename.tld, вы получите исключение.

Я еще не понял, как он работает с и без www в начале.

0

Я получал это исключение, потому что «состояние» не было сохранено в сеансе. Но я использовал метод asPopup - Socialite::driver('facebook')->asPopup()->redirect();, поэтому я сохранил сеанс, затем - $request->session()->save();. Поэтому я решил эту проблему.

или попробовать

session()->put('state', $request->input('state')); 
$user = Socialite::driver('facebook')->user(); 

работает