我正在做一個關于 Laravel 的副專案,我是一名初級實習生。目前我需要生成一個 URL 并將其發送到特定的電子郵件,用戶可以在有限的時間內查看 pdf,并且只能查看一次。
現在我只是在處理唯一的 URL 生成,并希望得到一些建議,以安全地生成它們,遵循標準并且僅限于有限的時間。
會喜歡一些資源或建議。
uj5u.com熱心網友回復:
我認為您正在尋找的是 Laravel 中的簽名路由。
可能這有幫助
https://laravel.com/docs/9.x/urls#signed-urls
例子:
首先,在使用簽名 URL 之前,您需要檢查 App/Http/Kernel 中的下一行未注釋
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
之后在網路路由中,您必須添加簽名中間件
Route::get('pdf/{id}/{user}/{response}', PdfController::class)->name('pdf.generate')->**middleware('signed')**
您終于可以使用您的簽名網址作為
use \Illuminate\Support\Facades\URL;
URL::temporarySignedRoute('pdf.generate', now()->addHour(), [
'id' => 25,
'user' => 100,
'response' => 'yes'
]);
它創建了一個簽名的網址,例如
https://example.com/pdf/25/100/yes?expires=1521543365 &signature=d32f53ced4a781f287b612d21a3b7d3c38ebc5ae53951115bb9af4bc3f88a87a
簽名哈希包含路由中的所有引數并避免操縱,并且一小時內最好的將永遠過期。
拋出 Illuminate\Routing\Exceptions\InvalidSignatureException。過期后訪問時
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/485943.html
