mirror of
https://github.com/bec-project/bec_atlas.git
synced 2025-07-13 22:51:49 +02:00
fix(auth): fixed form data login on /docs
This commit is contained in:
@ -5,7 +5,7 @@ from datetime import datetime, timedelta
|
|||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
import jwt
|
import jwt
|
||||||
from fastapi import HTTPException, Request, status
|
from fastapi import Depends, HTTPException, Request, status
|
||||||
from fastapi.security import OAuth2PasswordBearer
|
from fastapi.security import OAuth2PasswordBearer
|
||||||
from jwt.exceptions import InvalidTokenError
|
from jwt.exceptions import InvalidTokenError
|
||||||
from pwdlib import PasswordHash
|
from pwdlib import PasswordHash
|
||||||
@ -74,6 +74,10 @@ def decode_token(token: str):
|
|||||||
raise credentials_exception from exc
|
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:
|
async def get_current_user(request: Request) -> UserInfo:
|
||||||
token = request.cookies.get("access_token")
|
token = request.cookies.get("access_token")
|
||||||
return get_current_user_sync(token)
|
return get_current_user_sync(token)
|
||||||
|
@ -9,6 +9,7 @@ from bec_atlas.authentication import (
|
|||||||
convert_to_user,
|
convert_to_user,
|
||||||
create_access_token,
|
create_access_token,
|
||||||
get_current_user,
|
get_current_user,
|
||||||
|
get_current_user_token,
|
||||||
verify_password,
|
verify_password,
|
||||||
)
|
)
|
||||||
from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource
|
from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource
|
||||||
@ -38,11 +39,16 @@ class UserRouter(BaseRouter):
|
|||||||
"/user/login/form", self.form_login, methods=["POST"], dependencies=[]
|
"/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/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
|
@convert_to_user
|
||||||
async def user_me(self, user: User = Depends(get_current_user)):
|
async def user_me(self, user: User = Depends(get_current_user)):
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
async def test_login(self, user: UserInfo = Depends(get_current_user_token)):
|
||||||
|
return user
|
||||||
|
|
||||||
async def form_login(
|
async def form_login(
|
||||||
self, form_data: Annotated[OAuth2PasswordRequestForm, Depends()], response: Response
|
self, form_data: Annotated[OAuth2PasswordRequestForm, Depends()], response: Response
|
||||||
):
|
):
|
||||||
|
Reference in New Issue
Block a user