Laravel 8 驗(yàn)證簽名路由請求

2021-07-17 16:02 更新

要驗(yàn)證傳入請求是否具有有效簽名,你應(yīng)該對傳入的 Request 調(diào)用 hasValidSignature 方法:

use Illuminate\Http\Request;

Route::get('/unsubscribe/{user}', function (Request $request) {
    if (! $request->hasValidSignature()) {
        abort(401);
    }

    // ...
})->name('unsubscribe'); 

或者,你可以將 Illuminate\Routing\Middleware\ValidateSignature 中間件分配給路由。如果它不存在,則應(yīng)該在 HTTP 內(nèi)核的 routeMiddleware 數(shù)組中為此中間件分配一個(gè)鍵:

/**
 * 路由中間件
 *
 * 這些中間件可以分配給組,也可以單獨(dú)使用
 *
 * @var array
 */
protected $routeMiddleware = [
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
];

在內(nèi)核中注冊中間件后,你可以將其附加到路由中。如果傳入請求沒有有效簽名,則中間件將自動返回 403 錯誤響應(yīng):

Route::post('/unsubscribe/{user}', function (Request $request) {
    // ...
})->name('unsubscribe')->middleware('signed'); 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號