Я застрял с реальной раздражающей проблемой. Я немного поэкспериментировал с Laravel внутри виртуальной коробки, и теперь я чувствовал, что мое приложение готово к запуску на моем сервере. Поэтому я загрузил весь проект на свой сервер и дал права на хранилище и папку bootstrap/cache.
Я использую Socialite for Twitch для аутентификации пользователей. Я добавил все необходимые вещи, такие как (ключ, секрет и НОВЫЙ URL-адрес перенаправления) в файл .env, а также изменил URL-адрес перенаправления в настройках моего приложения twitch. По какой-то причине я больше не могу войти в систему. Я всегда получаю следующую ошибку.
(1|1) InvalidStateException
in AbstractProvider.php (line 32)
at AbstractProvider->user()
in TwitchAuthController.php (line 34)
at TwitchAuthController->handleProviderCallback()
at call_user_func_array(array(object(TwitchAuthController), 'handleProviderCallback'), array())
in Controller.php (line 55)
Строка 34 TwitchAuthController.php выглядит так, здесь начинают происходить все плохие вещи ;P
$user = Socialite::driver('twitch')->user();
У меня все еще есть проект в моем виртуальном ящике, откуда я его развертываю и синхронизирую с моим «настоящим» сервером, так что это означает, что оба проекта (виртуальный ящик и сервер) абсолютно одинаковы. Как только я изменю URL-адрес перенаправления в своем файле .env и в настройках twitch обратно на IP-адрес виртуального ящика, вход в систему снова будет работать нормально. Я понятия не имею, почему там он работает безупречно, но не тогда, когда я настраиваю настройки для своего сервера.
Вероятно, это как-то связано с окружением "SESSION_DOMAIN".
Я изменил это на:
SESSION_DOMAIN=http://example.com
Он все еще получал ту же ошибку, поэтому я изменил URL-адрес перенаправления на:
TWITCH_REDIRECT_URI=http://1.2.3.4/twitch/callback
а также изменил URL-адрес на самом сайте twitch api. После этого я попытался и получил ту же ошибку, что и на моем живом веб-сервере. Поэтому я полностью удалил SESSION_DOMAIN из .env, и он снова начал работать на моем виртуальном ящике. Каким-то образом это кажется связанным с сессией, я думаю. До сих пор не понимаю, почему точно такой же клон на моем виртуальном ящике работает отлично, в то время как он не работает на моем реальном веб-сервере, хотя код точно такой же, единственная разница заключается в URL-адресе перенаправления, который я должен настроить для каждой настройки.
Никто не знает?
Лучший
Лучший Том