feat: login rate limit için frontend uyarı mesajı ve IP bazlı limit aktif edildi
Some checks failed
Build MIPS Binary / build (push) Has been cancelled
Some checks failed
Build MIPS Binary / build (push) Has been cancelled
This commit is contained in:
@@ -2,14 +2,16 @@ use governor::clock::QuantaInstant;
|
|||||||
use governor::middleware::NoOpMiddleware;
|
use governor::middleware::NoOpMiddleware;
|
||||||
use tower_governor::governor::GovernorConfig;
|
use tower_governor::governor::GovernorConfig;
|
||||||
use tower_governor::governor::GovernorConfigBuilder;
|
use tower_governor::governor::GovernorConfigBuilder;
|
||||||
use tower_governor::key_extractor::GlobalKeyExtractor;
|
use tower_governor::key_extractor::SmartIpKeyExtractor;
|
||||||
|
|
||||||
pub fn get_login_rate_limit_config() -> GovernorConfig<GlobalKeyExtractor, NoOpMiddleware<QuantaInstant>> {
|
pub fn get_login_rate_limit_config() -> GovernorConfig<SmartIpKeyExtractor, NoOpMiddleware<QuantaInstant>> {
|
||||||
// GLOBAL TEST: Kim olursa olsun 2 denemeden sonra 30 saniye bloklanır.
|
// Katı limitler:
|
||||||
|
// Başlangıçta 3 hak. 4. denemede bloklanır.
|
||||||
|
// Her yeni hak için 20 saniye bekleme süresi.
|
||||||
GovernorConfigBuilder::default()
|
GovernorConfigBuilder::default()
|
||||||
.key_extractor(GlobalKeyExtractor)
|
.key_extractor(SmartIpKeyExtractor)
|
||||||
.per_second(30)
|
.per_second(20)
|
||||||
.burst_size(2)
|
.burst_size(3)
|
||||||
.finish()
|
.finish()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
@@ -41,6 +41,8 @@ pub fn Login() -> impl IntoView {
|
|||||||
logging::log!("Login successful, redirecting...");
|
logging::log!("Login successful, redirecting...");
|
||||||
// Force a full reload to re-run auth checks in App.rs
|
// Force a full reload to re-run auth checks in App.rs
|
||||||
let _ = window().location().set_href("/");
|
let _ = window().location().set_href("/");
|
||||||
|
} else if resp.status() == 429 {
|
||||||
|
set_error.set(Some("Çok fazla başarısız deneme yaptınız. Lütfen bir süre bekleyip tekrar deneyin.".to_string()));
|
||||||
} else {
|
} else {
|
||||||
let text = resp.text().await.unwrap_or_default();
|
let text = resp.text().await.unwrap_or_default();
|
||||||
logging::error!("Login failed: {}", text);
|
logging::error!("Login failed: {}", text);
|
||||||
|
|||||||
Reference in New Issue
Block a user