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](https://i.stack.imgur.com/ujzxt.png)
Теперь, когда я звоню
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](https://i.stack.imgur.com/4TxAw.png)
Вот и мой web.php
и контроллер это вызывает:
![amzadscontroller](https://i.stack.imgur.com/ELWFP.png)
Я не уверен, что это вопрос портов. В случае, если это полезно, вот моя конфигурация портов PhpStorm:
![Debugger ports config](https://i.stack.imgur.com/YSFca.png)
ОБНОВЛЕНИЕ: найден дрянной патч (все еще в поисках лучшего способа решения)
Включив отладчик и 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 на моем компьютере.
После исправления отладчик возвращается к коду моего проекта и к точке останова в методе обратного вызова.
Все еще ищу более чистое решение, но патч позволяет мне продолжать тестирование.