16 lines
507 B
Python
16 lines
507 B
Python
from slowapi import Limiter, _rate_limit_exceeded_handler
|
|
from slowapi.errors import RateLimitExceeded
|
|
from starlette.requests import Request
|
|
|
|
from config import conf
|
|
from core.app import app
|
|
|
|
|
|
def get_unique_identification(request: Request) -> str:
|
|
return request.client.host or "127.0.0.1"
|
|
|
|
|
|
limiter = Limiter(key_func=get_unique_identification, storage_uri=conf.database.get('limiter_redis').url)
|
|
app.state.limiter = limiter
|
|
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
|