Update files
This commit is contained in:
parent
286cf1f1c8
commit
34fdbe17ba
|
|
@ -4,10 +4,8 @@ Moderation authentication routes
|
|||
import secrets
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Optional
|
||||
from fastapi import APIRouter, HTTPException, status, Response, Cookie, Depends
|
||||
from fastapi import APIRouter, HTTPException, status, Response, Cookie, Depends, Request
|
||||
from fastapi.responses import JSONResponse
|
||||
from slowapi import Limiter
|
||||
from slowapi.util import get_remote_address
|
||||
from bson import ObjectId
|
||||
|
||||
from models import (
|
||||
|
|
@ -27,12 +25,6 @@ from utils.email_service import send_verification_code
|
|||
from config import settings
|
||||
|
||||
router = APIRouter()
|
||||
limiter = Limiter(key_func=get_remote_address)
|
||||
|
||||
|
||||
# Rate limiters
|
||||
AUTH_LIMITER = "5/15minutes" # 5 requests per 15 minutes
|
||||
CODE_LIMITER = "1/minute" # 1 request per minute
|
||||
|
||||
|
||||
def set_auth_cookies(response: Response, access_token: str, refresh_token: str):
|
||||
|
|
@ -65,8 +57,7 @@ def clear_auth_cookies(response: Response):
|
|||
|
||||
|
||||
@router.post("/send-code")
|
||||
@limiter.limit(CODE_LIMITER)
|
||||
async def send_code(request: SendCodeRequest):
|
||||
async def send_code(request: SendCodeRequest, http_request: Request = None):
|
||||
"""Send verification code to email"""
|
||||
try:
|
||||
email_lower = request.email.lower().strip()
|
||||
|
|
@ -152,7 +143,6 @@ async def send_code(request: SendCodeRequest):
|
|||
|
||||
|
||||
@router.post("/register")
|
||||
@limiter.limit(AUTH_LIMITER)
|
||||
async def register(request: RegisterRequest, response: Response):
|
||||
"""Register with email verification code"""
|
||||
try:
|
||||
|
|
@ -256,7 +246,6 @@ async def register(request: RegisterRequest, response: Response):
|
|||
|
||||
|
||||
@router.post("/login")
|
||||
@limiter.limit(AUTH_LIMITER)
|
||||
async def login(request: LoginRequest, response: Response):
|
||||
"""Login with email and password"""
|
||||
try:
|
||||
|
|
@ -324,7 +313,6 @@ async def login(request: LoginRequest, response: Response):
|
|||
|
||||
|
||||
@router.post("/telegram-widget")
|
||||
@limiter.limit(AUTH_LIMITER)
|
||||
async def telegram_widget_auth(request: TelegramWidgetAuth, response: Response):
|
||||
"""Authenticate via Telegram Login Widget"""
|
||||
try:
|
||||
|
|
@ -437,3 +425,9 @@ async def get_current_user_info(user: dict = Depends(get_current_user)):
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@router.post("/telegram")
|
||||
async def telegram_auth_alias(request: TelegramWidgetAuth, response: Response):
|
||||
"""Alias for /telegram-widget for compatibility with frontend"""
|
||||
return await telegram_widget_auth(request, response)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue