fix(auth): fixed form data login on /docs

This commit is contained in:
2025-02-17 17:36:04 +01:00
parent 0b107c9882
commit 77745a6207
2 changed files with 11 additions and 1 deletions

View File

@ -5,7 +5,7 @@ from datetime import datetime, timedelta
from functools import wraps
import jwt
from fastapi import HTTPException, Request, status
from fastapi import Depends, HTTPException, Request, status
from fastapi.security import OAuth2PasswordBearer
from jwt.exceptions import InvalidTokenError
from pwdlib import PasswordHash
@ -74,6 +74,10 @@ def decode_token(token: str):
raise credentials_exception from exc
async def get_current_user_token(token: str = Depends(oauth2_scheme)) -> UserInfo:
return get_current_user_sync(token)
async def get_current_user(request: Request) -> UserInfo:
token = request.cookies.get("access_token")
return get_current_user_sync(token)

View File

@ -9,6 +9,7 @@ from bec_atlas.authentication import (
convert_to_user,
create_access_token,
get_current_user,
get_current_user_token,
verify_password,
)
from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource
@ -38,11 +39,16 @@ class UserRouter(BaseRouter):
"/user/login/form", self.form_login, methods=["POST"], dependencies=[]
)
self.router.add_api_route("/user/logout", self.user_logout, methods=["POST"])
self.router.add_api_route("/user/test_login", self.test_login, methods=["POST"])
self.router.add_api_route("/user/test_login", self.test_login, methods=["POST"])
@convert_to_user
async def user_me(self, user: User = Depends(get_current_user)):
return user
async def test_login(self, user: UserInfo = Depends(get_current_user_token)):
return user
async def form_login(
self, form_data: Annotated[OAuth2PasswordRequestForm, Depends()], response: Response
):