2 回答

TA貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊
標(biāo)retry-after
頭與速率限制無關(guān)。所有與速率限制相關(guān)的標(biāo)頭都以x-ratelimit-
. 標(biāo)頭x-ratelimit-reset
是您要查找的內(nèi)容:限制何時重置的時間戳。這應(yīng)該在下一分鐘內(nèi)(或您設(shè)置的任何時間段)

TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊
我想到了!
原來throttle
中間件的默認(rèn)行為不適用于每個路由。它只是限制每個登錄用戶的請求。如您所見,我有一條路線(上傳路線)具有throttle:100,1440
,這會導(dǎo)致問題導(dǎo)致更長的“懲罰”,即使對于具有throttle:120,1
.
我的解決方案: 我編寫了自己的ThrottleRequests.php
中間件版本,適用于每個路由:
將此文件放在您的
app/Http/Middleware
文件夾中。app/Http/Kernel.php
將油門路由中間件更改為新的中間件:
'throttle' => \App\Http\Middleware\ThrottleRequestsPerRoute::class,
現(xiàn)在,每當(dāng)您分配
throttle
中間件時,它都會按路由工作。
另一種解決方案: 您也可以使用默認(rèn)中間件并使用第三個參數(shù)。您可以傳遞這樣的前綴參數(shù):throttle:100,1440,upload
. 它將上傳前綴分配給限制鍵并基于此限制請求的速率。但是,要實現(xiàn)每條路由的速率限制,您必須為每條路由分配不同的前綴。
- 2 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報