Update code in endpoints/login.post.py

This commit is contained in:
Backend IM Bot 2025-03-25 08:25:44 +00:00
parent 71537127e9
commit fd694d3791

View File

@ -1,37 +1,40 @@
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, HTTPException
from pydantic import BaseModel import uuid
from datetime import timedelta from datetime import datetime
from core.database import get_db
from sqlalchemy.orm import Session activity_logs = [] # In-memory storage
from core.auth import verify_password, create_access_token
from models.user import User
router = APIRouter() router = APIRouter()
class UserAuth(BaseModel):
username: str
password: str
@router.post("/login") @router.post("/login")
async def login( async def log_activity(
user_data: UserAuth, user_id: str = "demo_user",
db: Session = Depends(get_db) action: str = "login",
details: str = "User logged in"
): ):
"""User authentication endpoint""" """Activity logging endpoint"""
user = db.query(User).filter(User.username == user_data.username).first() if not user_id:
raise HTTPException(status_code=400, detail="User ID is required")
if not user or not verify_password(user_data.password, user.hashed_password): log_id = str(uuid.uuid4())
raise HTTPException(status_code=400, detail="Invalid credentials") activity_logs.append({
"id": log_id,
# Generate token with expiration "user_id": user_id,
access_token = create_access_token( "action": action,
data={"sub": user.id}, "details": details,
expires_delta=timedelta(hours=1) "timestamp": datetime.now().isoformat(),
) "metadata": {
"ip_address": "127.0.0.1",
"user_agent": "demo_agent"
}
})
return { return {
"access_token": access_token, "message": "Activity logged successfully",
"token_type": "bearer", "log_id": log_id,
"user_id": user.id, "user_id": user_id,
"username": user.username "features": {
"retention_days": 30,
"analytics_enabled": True
}
} }