временный подписанный URL всегда истек laravel - PullRequest
0 голосов
/ 20 марта 2020

После переноса приложения Laravel 5.7 на Docker временные подписанные URL-адреса всегда имеют статус с истекшим сроком действия

Функция выглядит как

public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('2FA Reset Confirmation')
            ->view('emails.confirmReset2fa',[
                'link' => URL::temporarySignedRoute(
                    '2fa.reset.confirm', now()->addMinutes(30), ['user' => $this->resetUser->id]
                )
            ]);

Внутри контейнера nginx, php -fpm и само приложение настроены. Контейнер расположен за трафиком

1 Ответ

0 голосов
/ 20 марта 2020

Итак, я решил свою проблему. Проблема была с loadbalancer и следующим кодом, который я добавил для принудительной установки HTTPS.

if (env('APP_ENV') == 'prod' or env('APP_ENV') == 'dev') {
    \URL::forceScheme('https');
}

Мне нужно добавить app/Http/Middleware/TrustProxies.php

<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array
     */
    protected $proxies = '*';

    /**
     * The headers that should be used to detect proxies.
     *
     * @var string
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

https://laravel.com/docs/5.8/requests#configuring -trusted- прокси

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...