UploadPDF / apis /V1 /controllers /auth_controller.py
ABAO77's picture
Upload 62 files
408128e verified
from fastapi import HTTPException, status
from ..models.users import User, UserSchema
from ..configs.database_config import db
from ..interfaces.auth_interface import Credential
from ..providers import jwt as jwt_provider
from ..middlewares.auth_middleware import get_current_user
import jwt
collection_name = db["user"]
def login_control(token):
if not token:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Authorization Token is required",
)
decoded_token = jwt.decode(token, options={"verify_signature": False})
user = {
"name": decoded_token["name"],
"email": decoded_token["email"],
"picture": decoded_token["picture"],
}
user = User(**user)
existing_user = UserSchema.find_by_email(user.email)
if not existing_user:
user_id = UserSchema(**user.dict()).create()
else:
user_id = existing_user["_id"]
token = jwt_provider.encrypt({"id": str(user_id)})
return token