所以我用URL生成正与laravel,我想知道是否可以使用多个路由具有相同的URL签名。我有我的路线分为如下签名的middlware组:
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::signedRoute('clientquote', ['client' => $event->client, 'quote' => $event->quote]),
电子邮件是通过mailgun发送,当我点击电子邮件中的链接就可以带我到最后获取路线我middlware。一旦这条路线的部件安装在我制作一个辅助Axios公司调用来获取负载路径:
axios
.get(
"/load/client/" + clientNumber + "/quote/" + quoteNumber + window.location.search
)
离开关闭其他代码,但我得到一个403错误,只是在这里控制台验证是路线:
/load/client/2/quote/1?signature=5d2e3273e51429ba688f85969911bd3a279d36348f2e74bd10f871a56218e722
就是我所要求的甚至有可能还是需要生成每个后续路线的新标识的URL?
如果你有下signed
中间件的路线,这意味着所有这些路由should
具有有效签名。否则,它会给你403错误。
当你调用URL::signedRoute(..)
,该签名特别代表特定路由的URL。所以,如果你尝试相同的签名完全连接到不同的路线,它不会工作。
你可以做的是,当你发送数据到clientquote
路线刀片查看,发送所产生的已签署的网址,以及对/load/client/
路线,然后用在axois。