PhpStorm Laravel Socialite редирект на локальный хост - PullRequest
0 голосов
/ 16 января 2019

Laravel 5.7.15 на macOS (Valet) с использованием PhpStorm.

Я использую Socialite для входа через Amazon.

Я добавил эти записи в .env файл

AMAZON_LOGIN_ID=*******
AMAZON_LOGIN_SECRET=******
AMAZON_LOGIN_REDIRECT='https://127.0.0.1/TestLoginAmzCallBack'

отредактировано /config/services.php

 'amazon' => [
   'client_id'     => env('AMAZON_LOGIN_ID'),
   'client_secret' => env('AMAZON_LOGIN_SECRET'),
   'redirect'      => env('AMAZON_LOGIN_REDIRECT'),
 ],

и добавил веб-сайт обратного вызова в разрешенные URL-адреса возврата на портале приложений Amazon Allowed Return URLs on the Amazon app portal

Теперь, когда я звоню

Socialite::driver('amazon')->redirect();

Laravel запускает браузер на mywebapp.test и правильно запрашивает вход в систему с учетными данными Amazon. После входа браузер перенаправляет на AMAZON_LOGIN_REDIRECT, указанный ранее (https://127.0.0.1/TestLoginAmzCallBack).

Проблема в том, что браузер не находит страницу по этому URL browser doesn't find the page at that url

Вот и мой web.php web.php и контроллер это вызывает: amzadscontroller

Я не уверен, что это вопрос портов. В случае, если это полезно, вот моя конфигурация портов PhpStorm:

php ports config Debugger ports config

ОБНОВЛЕНИЕ: найден дрянной патч (все еще в поисках лучшего способа решения)

Включив отладчик и Phpstorm, прослушивающие входящие вызовы, я смог перехватить все вызовы в ~ ~ .composer / vendor / laravel / valet / server.php.

Сравнивая успешный вызов (mywebapp.test/TestLoginAmz) с тем, который поступил из Amazon и имел проблемы (127.0.0.1/TestLoginAmzCallBack), я обнаружил, что переменная $ siteName была установлена ​​в mywebapp при успешных вызовах, в то время как она была установлена ​​в 127.0.0.1 на возвращающемся с Амазонки.

В качестве (terrbile) патча я добавил эти строки кода в ~/.composer/vendor/laravel/valet/server.php:

if ($siteName == "127.0.0.1") {
  $siteName = 'mywebapp';
}

Это ужасное и дрянное исправление, и оно сделано на ~/.composer/vendor/laravel/valet/server.php, который является общим файлом для ВСЕХ проектов камердинера laravel на моем компьютере.

После исправления отладчик возвращается к коду моего проекта и к точке останова в методе обратного вызова.

Все еще ищу более чистое решение, но патч позволяет мне продолжать тестирование.

...