【发布时间】:2019-06-29 12:52:57
【问题描述】:
所以我正在使用 laravel 生成 URL,我想知道您是否可以使用具有相同 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]),
电子邮件是通过 mailgun 发送的,当我单击电子邮件中的链接时,它会将我带到中间件中的最后一条获取路径。安装该路由的组件后,我会进行辅助 axios 调用以获取加载路由:
axios
.get(
"/load/client/" + clientNumber + "/quote/" + quoteNumber + window.location.search
)
省略其他代码,但我收到 403 错误,只是为了在控制台中验证这里是路由:
/load/client/2/quote/1?signature=5d2e3273e51429ba688f85969911bd3a279d36348f2e74bd10f871a56218e722
我所要求的是否可能,或者我是否需要为每个后续路由生成一个新的签名 URL?
【问题讨论】:
标签: laravel url middleware signed