PhpStorm Laravel Socialite перенаправление на локальный хост

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. PhpStorm Laravel Socialite перенаправление на локальный хост

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

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

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

Проблема в том, что браузер не находит страницу по этому URL-адресу. PhpStorm Laravel Socialite перенаправление на локальный хост

Вот и мой web.phpPhpStorm Laravel Socialite перенаправление на локальный хост и вызываемый им контроллер: PhpStorm Laravel Socialite перенаправление на локальный хост

Не уверен, дело ли дело в портах. На случай, если это будет полезно, вот моя конфигурация портов PhpStorm:

PhpStorm Laravel Socialite перенаправление на локальный хостPhpStorm Laravel Socialite перенаправление на локальный хост

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

Включив отладчик и 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 на моем компьютере.

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

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

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

linktoahref 16.01.2019 07:06

Можешь показать свой файл web.php?

Prashant Pokhriyal 16.01.2019 07:07

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

common sense 16.01.2019 10:46

@linktoahref Я пробовал использовать http и https, и результат тот же.

Dobrocode 16.01.2019 18:11

@PrashantPokhriyal Я добавил пару скриншотов для web.php и связанного с ним контроллера.

Dobrocode 16.01.2019 18:19

@commonsense Я подумал, что это может быть связано, потому что я, собственно, отлаживаю свое приложение. Я добавил точку останова в функцию обратного вызова и хотел бы, чтобы код вернулся к ней. Если Xdebug прослушивает определенный порт, не следует ли мне указывать этот порт в URL-адресе перенаправления?

Dobrocode 16.01.2019 18:20

Если вы хотите отлаживать свое приложение, включите расширение отладчика в своем браузере (небольшая ошибка под панелью вкладок в Chrome) и включите прослушиватель в PhpStorm. Я пишу это, потому что расширение отладчика не выглядит зеленый на вашем снимке экрана.

common sense 16.01.2019 18:53

Вы говорите, что используете mywebapp.test для запуска своего приложения. Почему тогда вы перенаправляете на 127.0.0.1? (если я не упускаю какую-то часть). Возможно, ваше приложение не хочет прослушивать этот адрес ...

LazyOne 16.01.2019 20:47

@LazyOne спасибо за вопрос. Amazon Login не позволяет вам установить идентификатор перенаправления, который не является реальным веб-сайтом или IP-адресом. Я не могу установить mywebapp.test на портале приложений Amazon, он возвращает сообщение об ошибке: «Настройки веб-сайта и веб-сервисов не были сохранены из-за следующих ошибок: Один из URL-адресов возврата вашего веб-сайта недействителен. Пример: example.com/signin '

Dobrocode 17.01.2019 19:16

@Dobrocode Спасибо за объяснение этой части. В таком случае - какой сервис обслуживает этот сайт 127.0.0.1 и mywebapp.test? Если они оба обслуживаются одной и той же службой, например Простой веб-сервер Apache или PHP (приложение Laravel) ... тогда вам нужно будет настроить его так, чтобы запрос к 127.0.0.1 обрабатывался так же, как если бы он был там mywebapp.test ... Из того, что я вижу (ваша информация и скриншоты), это не проблема PhpStorm здесь

LazyOne 17.01.2019 20:24

@Dobrocode. Если все это обрабатывается вашим приложением Laravel и должно обрабатывать оба запроса, попробуйте создать резервный обработчик (для ответов 404) - он должен предоставить некоторые подсказки (после его отладки) относительно того, почему оно так себя ведет. Лучших идей сейчас нет.

LazyOne 17.01.2019 20:26

@LazyOne спасибо за ответ. Было бы разумно, чтобы у Laravel Valet было какое-то соответствие между входящими запросами и приложениями, которые он может запускать. Я изучу это и опубликую обновление позже, спасибо!

Dobrocode 17.01.2019 21:33

@LazyOne & commonsese, следуя вашим предложениям, я смог добиться некоторого прогресса и нашел неоднозначный способ продолжить работу. Я обновил вопрос

Dobrocode 18.01.2019 01:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
13
271
0

Другие вопросы по теме