Laravel Social не работает на живом сервере, работает только на локальной машине - PullRequest
2 голосов
/ 26 июня 2019

Я недавно переместил свое приложение на работающий сервер.
Проблема в том, что laravel socialite перестал работать, ниже объяснение:
Я нажимаю на логин Google и после выбора электронной почты, при обратном вызове это происходит:
InvalidStateException on Abstract.php on line 200.
Чтобы исправить эту проблему, я использовал stateless() и теперь новая ошибка:
Client error: `POST https://www.googleapis.com/oauth2/v4/token` resulted in a `400 Bad Request` response: { "error": "invalid_request", "error_description": "Missing required parameter: code" }

Вот список вещей, которые я уже пробовал:
1- На веб-сайте Google я обновил API Google url и callback url на новые адреса действующего домена: http://www.domain-name.com и http://www.domain-name.com/login/google/callback

2- Я изменил файл config / session.php следующим образом:
'domain' => env('SESSION_DOMAIN', 'www.domain-name.com'),

3- Моя папка хранения уже имеет такое разрешение:
drwxrwxr-x 5 root www-data 4096 Jun 24 18:30 storage

4 - я изменил vendor\laravel\socialite\src\Two\GoogleProvider.php файл и удалил «профиль», и теперь он выглядит так:

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

5 - Я использовал php artisan cache:clear, composer dump-autoload и очищал данные кэша браузера много раз.

6 - я попытался $userSocial = Socialite::with('google')->user(); вместо $userSocial = Socialite::driver('google')->user();, и я все еще получаю InvalidStateException on Abstract.php on line 200. только когда я изменяю на $userSocial = Socialite::driver('google')->stateless()->user();, ошибка меняется на то, что я сказал в начале вопроса.

мой config/services.php файл выглядит так:

'google' => [
    'client_id' => 'my-correct-client-id-from-google',
    'client_secret' => 'my-correct-client-secret-from-google',
    'redirect' => 'http://www.domain-name.com/login/google/callback',
],

Я пытался это исправить уже 2 дня. любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 июня 2019

после многих часов впустую. наконец-то нашел ответ:
Я был очень глуп, извини. это был nginx:
так что я побежал sudo nano /etc/nginx/sites-available/default

и исправил эту строку:

try_files $uri $uri/ /index.php?query_string; // wrong 

до

try_files $uri $uri/ /index.php?$query_string; // fixed 
...