Подписанные маршруты Laravel выдают исключение InvalidSignatureException в производствеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Подписанные маршруты Laravel выдают исключение InvalidSignatureException в производстве

Сообщение Anonymous »

Каждый раз, когда я использую посещение URL-адреса, созданного с помощью tempSignedRoute() в production, он выдает InvalidSignatureException. Однако в среде dev это работает. Я также пробовал использовать SignRoute(), но безуспешно.

Я создаю свои URL-адреса следующим образом:

Код: Выделить всё

\URL::temporarySignedRoute(
'user.activate',
now()->addHours(200),
[ 'id' => $user->id ]
);
Пример URL-адреса: https://xx.xx/activate/5?expires=153706 ... 2402081090

Я убедился, что APP_KEY установлен. Я не совсем уверен, какой шаг мне следует предпринять, чтобы это исправить. Для развертывания я использую Laravel Forge. Я также использую балансировщик нагрузки, но только один банкомат сервера приложений.


Почему метод tempSignedRoute() выдает InvalidSignatureException в производстве?


Изменить:

Логируя запрос, я получаю такие данные:

Код: Выделить всё

// [ $expired, $url, $query, $original, $signature ]
[
false,
"http://xx.xx/activate/13",{"expires":"1537076308","signature":"9d972a574137bf7e5f30120c3f539a81bca71875020c3476e3bfb230220a73f7"},
"http://xx.xx/activate/13?expires=1537076308",
"ed80a6ae717e806fd5f887224c2ac88f5fffb893ae284cc52688ba0690d3a9e1"
]
Обратите внимание, что URL-адрес начинается с http://, но фактическая созданная ссылка использует https://. URL-адрес регистрируется с помощью request()->url(). Это наводит меня на мысль, что проблема кроется в http-схеме.

В моем AppServiceProvider.php я принудительно использую https следующим образом:

Код: Выделить всё

if (env('APP_ENV') == 'production') {
\URL::forceScheme('https');
}
Почему request() получает его как не http?

Подробнее здесь: https://stackoverflow.com/questions/522 ... production
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»