Laravel 5.7.15 на macOS (Valet) с использованием PhpStorm.
Я использую Светская львица для входа в 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.

Теперь, когда я звоню
Socialite::driver('amazon')->redirect();
Laravel запускает браузер на mywebapp.test и правильно запрашивает авторизацию с учетными данными Amazon. После входа в систему браузер перенаправляет на указанный ранее AMAZON_LOGIN_REDIRECT (https://127.0.0.1/TestLoginAmzCallBack).
Проблема в том, что браузер не находит страницу по этому URL-адресу.

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

Не уверен, дело ли дело в портах. На случай, если это будет полезно, вот моя конфигурация портов PhpStorm:
ОБНОВЛЕНИЕ: обнаружен дрянной патч (все еще ищет способ решить)
Включив отладчик и Phpstorm для прослушивания входящих вызовов, я смог перехватить все вызовы к '~ / .composer / vendor / laravel / valet / server.php'.
Сравнивая успешный вызов (mywebapp.test/TestLoginAmz) с вызовом, поступившим от Amazon и имеющим проблемы (127.0.0.1/TestLoginAmzCallBack), я обнаружил, что для переменной $ siteName было установлено значение mywebapp при успешных вызовах, в то время как для переменной, возвращающейся с Amazon, было установлено значение 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 на моем компьютере.
После исправления отладчик возвращается к коду моего проекта и к точке останова в методе обратного вызова.
Все еще ищу более чистое решение, но патч позволяет мне тем временем продолжать тестирование.
Можешь показать свой файл web.php?
Я сомневаюсь, что PhpStorm имеет к этому какое-то отношение. Показанные вами настройки предназначены для отладки вашего приложения.
@linktoahref Я пробовал использовать http и https, и результат тот же.
@PrashantPokhriyal Я добавил пару скриншотов для web.php и связанного с ним контроллера.
@commonsense Я подумал, что это может быть связано, потому что я, собственно, отлаживаю свое приложение. Я добавил точку останова в функцию обратного вызова и хотел бы, чтобы код вернулся к ней. Если Xdebug прослушивает определенный порт, не следует ли мне указывать этот порт в URL-адресе перенаправления?
Если вы хотите отлаживать свое приложение, включите расширение отладчика в своем браузере (небольшая ошибка под панелью вкладок в Chrome) и включите прослушиватель в PhpStorm. Я пишу это, потому что расширение отладчика не выглядит зеленый на вашем снимке экрана.
Вы говорите, что используете mywebapp.test для запуска своего приложения. Почему тогда вы перенаправляете на 127.0.0.1? (если я не упускаю какую-то часть). Возможно, ваше приложение не хочет прослушивать этот адрес ...
@LazyOne спасибо за вопрос. Amazon Login не позволяет вам установить идентификатор перенаправления, который не является реальным веб-сайтом или IP-адресом. Я не могу установить mywebapp.test на портале приложений Amazon, он возвращает сообщение об ошибке: «Настройки веб-сайта и веб-сервисов не были сохранены из-за следующих ошибок: Один из URL-адресов возврата вашего веб-сайта недействителен. Пример: example.com/signin '
@Dobrocode Спасибо за объяснение этой части. В таком случае - какой сервис обслуживает этот сайт 127.0.0.1 и mywebapp.test? Если они оба обслуживаются одной и той же службой, например Простой веб-сервер Apache или PHP (приложение Laravel) ... тогда вам нужно будет настроить его так, чтобы запрос к 127.0.0.1 обрабатывался так же, как если бы он был там mywebapp.test ... Из того, что я вижу (ваша информация и скриншоты), это не проблема PhpStorm здесь
@Dobrocode. Если все это обрабатывается вашим приложением Laravel и должно обрабатывать оба запроса, попробуйте создать резервный обработчик (для ответов 404) - он должен предоставить некоторые подсказки (после его отладки) относительно того, почему оно так себя ведет. Лучших идей сейчас нет.
@LazyOne спасибо за ответ. Было бы разумно, чтобы у Laravel Valet было какое-то соответствие между входящими запросами и приложениями, которые он может запускать. Я изучу это и опубликую обновление позже, спасибо!
@LazyOne & commonsese, следуя вашим предложениям, я смог добиться некоторого прогресса и нашел неоднозначный способ продолжить работу. Я обновил вопрос






Вы уверены, что это
https, а неhttp?