ошибка аутентификации lauvel в социальной сети с Google API - PullRequest
0 голосов
/ 17 ноября 2018

Я использую пакет Socilte для входа пользователей, использую API facebook , google , twiter и github . Все остальные API работают нормально, ожидайте google API, он показывает ошибку при возвращении из Google.

Ошибка HTTP 403 - запрещено

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

Это моя функция обратного вызова, фактически она не достигает этой функции обратного вызова:

public function handleGoogleCallback()
{
     $user = Socialite::driver('google')->stateless()->user();        
}

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Я столкнулся с той же проблемой пару дней назад.Даже поиск в Google не решил мою проблему.Поэтому я решил пойти дальше и угадать, что я нашел соответствующую причину этой проблемы.

В моем случае причиной было слово .profile в URL обратного вызова Google.

'https% 3A% 2F% 2Fwww.googleapis.com% 2Fauth% 2Fuserinfo.profile '(часть моего URL обратного вызова)

Я разговаривал об этом с моим хостинг-провайдером (Hostgator), и первоначально они говорили, что эта проблема в коде, а не на их стороне,Но у меня было достаточно доказательств (я показал их, изменив .profile на .abc и huaa ... проблема исчезла ...), чтобы показать им, что эта проблема возникла со стороны сервера.Затем они предложили мне хостинг VPS (у меня общий хостинг), но я отказался принять его, и, наконец, они согласились с тем, что у них есть правило mod_security, которое запрещает слово .profile из соображений безопасности.

У них, конечно, есть устаревшее правило mod_security.

Когда я понял, что они не собираются менять для меня правило mod_security, тогда я изменил пакет ядра для светской группы

core / vendor / laravel / socialite / src / Two / GoogleProvider.php

и прокомментировал профиль здесь

protected $scopes = [
    'openid',
    //'profile',
    'email',
];

тогда все было хорошо, кроме как я не могне получил имя пользователя из-за комментирования профиля, но для меня это было хорошо.Так что это может быть уловка, чтобы избавиться от плохих правил сервера.

0 голосов
/ 17 ноября 2018

Причиной возникновения этой ошибки является то, что Google+ API не включен, перейдите в консоль Google и включите Google+ API.

Откройте свою учетную запись Google Console отсюда: console.developers.google.com

Затем перейдите -> библиотека -> выберите Google+ API -> Включить


ПРИМЕЧАНИЕ: Если это не работает, пожалуйста, измените хост-сервер и попробуйте

...