РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
427 of 1392 menu

Метод signedRoute

Метод signedRoute класса URL генерирует URL-адрес для именованного маршрута с добавлением криптографической подписи. Первым параметром передаётся имя маршрута, вторым - массив параметров, третьим - время истечения подписи в минутах. Если время не указано, подпись действует бесконечно. Метод возвращает строку с полным подписанным URL-адресом.

Синтаксис

<?php use Illuminate\Support\Facades\URL; URL::signedRoute($route, $parameters, $expiration); ?>

Пример

Давайте создадим подписанный URL для маршрута 'dashboard' с идентификатором пользователя:

<?php use Illuminate\Support\Facades\URL; $url = URL::signedRoute('dashboard', ['id' => 5]); echo $url; ?>

Результат выполнения кода:

"http://localhost/dashboard/5?signature=abcd1234567890efgh"

Пример

Создадим подписанный URL с временем истечения через 30 минут:

<?php use Illuminate\Support\Facades\URL; $url = URL::signedRoute('payment.confirm', ['order' => 42], 30); echo $url; ?>

Результат выполнения кода:

"http://localhost/payment/confirm/42?signature=wxyz9876543210lmno&expires=1712345678"

Пример

Используем подписанный URL в Blade-шаблоне для создания ссылки на подтверждение email:

<a href="{{ URL::signedRoute('verification.verify', ['id' => $user->id]) }}"> Подтвердить email </a>

Сгенерированный HTML-код:

<a href="http://localhost/verify/1?signature=5678abcd1234efgh"> Подтвердить email </a>

Пример

Проверим подписанный запрос в контроллере с помощью фасада Request:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class VerifyController extends Controller { public function verify(Request $request, $id) { if (!$request->hasValidSignature()) { abort(401, 'Invalid signature'); } return view('verified', ['id' => $id]); } } ?>

Смотрите также

  • метод temporarySignedRoute,
    который создаёт подписанный URL с ограниченным сроком действия
  • метод hasSignedRoute,
    который проверяет наличие подписанного маршрута
  • функция route,
    которая генерирует обычные URL-адреса для маршрутов
  • посредник signed,
    который автоматически проверяет подпись для группы маршрутов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить