diff --git a/backend/bec_atlas/authentication.py b/backend/bec_atlas/authentication.py index 4f58c56..8f59f51 100644 --- a/backend/bec_atlas/authentication.py +++ b/backend/bec_atlas/authentication.py @@ -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) diff --git a/backend/bec_atlas/router/user_router.py b/backend/bec_atlas/router/user_router.py index 48d82d0..79883ff 100644 --- a/backend/bec_atlas/router/user_router.py +++ b/backend/bec_atlas/router/user_router.py @@ -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 ):