2017-10-13 15 views
5

क्या किसी को लैरवेल 5.5 में ThrottleRequest मिडलवेयर को कार्यान्वित करने के बारे में जानकारी है?लैरवेल 5.5 थ्रॉटल रिवेस्ट मिडलवेयर

मैं विशेष रूप से decayMinutes पैरामीटर के अर्थ पर स्पष्ट नहीं कर रहा हूँ: https://laravel.com/api/5.5/Illuminate/Routing/Middleware/ThrottleRequests.html

मैं समझता हूँ कि कैसे एक मार्ग पर लागू करने, मैं सिर्फ यकीन है कि reaosnable मानकों होगा क्या नहीं कर रहा हूँ।

उत्तर

2

decayMinutes - यह आपकी सीमा के भीतर एक समय गिना जाएगा। तकनीकी रूप से सीमाएं टीटीएल (टाइम टू लाइव) के साथ एक मूल्य है $decayMinutes * 60 सेकंड में कैश में जो प्रत्येक हिट पर वृद्धि करता है। जब टीटीएल मूल्य से अधिक हो जाता है तो कैश में स्वचालित रूप से नष्ट हो जाएगा और नई हिट गिनती शुरू हो जाएगी।

RateLimit::hit() कोड पर देखें। यह बहुत स्पष्ट है:

/** 
* Increment the counter for a given key for a given decay time. 
* 
* @param string $key 
* @param float|int $decayMinutes 
* @return int 
*/ 
public function hit($key, $decayMinutes = 1) 
{ 
    $this->cache->add(
     $key.':timer', $this->availableAt($decayMinutes * 60), $decayMinutes 
    ); 
    $added = $this->cache->add($key, 0, $decayMinutes); 
    $hits = (int) $this->cache->increment($key); 
    if (! $added && $hits == 1) { 
     $this->cache->put($key, 1, $decayMinutes); 
    } 
    return $hits; 
} 

आप 5 मिनट प्रति 10 हिट से कुछ गतिविधियों को सीमित करना चाहते हैं, की तुलना में decayMinutes 5.

6

मैं decayMinutes को अवधारण समय के रूप में समझता हूं। इरादे के लिए, यदि आप गलत पासवर्ड से लॉगिन करने के लिए 10 कोशिश करना चाहते हैं, लेकिन यदि वह 11 बार कोशिश करता है, तो उपयोगकर्ता decayMinutes में निर्दिष्ट मिनटों की संख्या के लिए अवरुद्ध हो जाता है। यदि आप अपने decayMinutes के रूप में 10 मिनट निर्दिष्ट करते हैं, तो उपयोगकर्ता को 10 मिनट

+1

होना चाहिए स्रोत कोड को पढ़ने के होने से, यह मेरी समझ भी है। – fubar

+2

यह गलत जवाब है। 'decayMinutes' (Laravel 5.5 में) एक ब्लॉक समय नहीं है। –

+1

मुझे लगता है कि लॉगिन ब्लॉक समय एक उदाहरण है, और यह थ्रॉटलिंग के लिए ज्यादातर वही काम करता है। 'अनन्य यूआरएल अनुरोध' के साथ बस 'लॉगिन प्रयास' को प्रतिस्थापित करें। यदि आप $ decay मिनट मिनट के लिए कोई पेज या एपीआई अनुरोध नहीं करते हैं तो थ्रॉटल काउंटर रीसेट हो जाता है। –

संबंधित मुद्दे