ws ticket
Build and Push Docker Image / build-and-push (push) Successful in 14s

This commit is contained in:
ciomek committed 2026-08-17 22:19:02 +02:00
1 parent a603566235
commit 7280c5dd07
5 files changed
+66 -10

No files matched your search

+15 -3
View File
@@ -2,10 +2,11 @@ from fastapi import APIRouter, HTTPException, Request, status
from sqlmodel import Session, select
from loon.web import limiter
from loon.web.auth.middleware import authenticated
from loon.web.auth.schema import JWTResponse, JWTRequest
from loon.web.db import engine
from loon.web.users.models import User
from loon.web.utils.jwt import generate_token
from loon.web.utils.jwt import generate_token, generate_ws_token
from loon.web.utils.password import verify_password
router = APIRouter(prefix="/auth", tags=["auth"])
@@ -18,11 +19,22 @@ async def get_jwt(request: Request, body: JWTRequest) -> JWTResponse:
statement = select(User).where(User.internal_username == body.username)
user = session.exec(statement).first()
if user is None or not verify_password(body.password, user.password):
if user is None or user.id is None or not verify_password(body.password, user.password):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid username or password",
)
assert user.id is not None
return JWTResponse(access_token=generate_token(user.id))
@router.post("/ws-token", response_model=JWTResponse)
@authenticated
async def get_ws_token(request: Request) -> JWTResponse:
user_id = request.user.user.id
if user_id is None:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid or expired token",
)
return JWTResponse(access_token=generate_ws_token(user_id))