Laravel Подписанный URL Midllware - PullRequest
0 голосов
/ 05 февраля 2019

Итак, я работаю с генерацией URL с помощью laravel, и мне было интересно, можно ли использовать несколько маршрутов с одной и той же подписью URL.Мои маршруты сгруппированы в подписанную группу промежуточного программного обеспечения, как показано ниже:

Route::middleware('signed')->group(function () {
Route::get('load/client/{client}/quote/{quote}', 'QuoteController@getClientQuote')->name('clientquote');   
Route::post('submit/client/{client}/quote/{quote}', 'QuoteController@submitClientQuote')->name('clientquote');   
Route::post('save/client/{client}/quote/{quote}', 'QuoteController@saveClientQuote')->name('clientquote');   
Route::get('/client/{client}/quote/{quote}', 'QuoteController@getClientQuoteBlade')->name('clientquote');   

});

У меня также есть URL-адрес, сгенерированный в электронном письме здесь:

'url'        => URL::signedRoute('clientquote', ['client' => $event->client, 'quote' => $event->quote]),

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

        axios
        .get(
            "/load/client/" + clientNumber + "/quote/" + quoteNumber + window.location.search
        )

, исключая другой код, но я получаю ошибку 403, и просто для проверки в консоли вот этот маршрут:

/load/client/2/quote/1?signature=5d2e3273e51429ba688f85969911bd3a279d36348f2e74bd10f871a56218e722

это то, что я прошу, даже возможно, или мне нужно генерировать новый подписанный URL для каждого последующего маршрута?

1 Ответ

0 голосов
/ 05 февраля 2019

Если у вас есть маршрут в промежуточном программном обеспечении signed, это означает, что все эти маршруты should имеют действительную подпись.В противном случае это приведет к ошибке 403.

Когда вы звоните URL::signedRoute(..), эта подпись особенно представляет этот конкретный URL-адрес маршрута.Поэтому, если вы попытаетесь присоединить одну и ту же подпись к другому маршруту, это не сработает.

Что вы можете сделать, это когда вы отправляете данные в блэйд-просмотр по маршруту clientquote, отправляете подписанныйURL, сгенерированный также для маршрута /load/client/, а затем используйте его в Axois.

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