def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)): db_user = crud.get_user_by_email(db, email=user.email) if db_user: raise HTTPException(status_code=400, detail=f"The email {user.email} is already in use") db_user = crud.get_user_by_username(db, username=user.username) if db_user: raise HTTPException( status_code=400, detail=f"The username {user.username} is already in use", ) return crud.create_user(db=db, user=user)
async def external_login( request: Request, form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db), ): user = crud.get_user_by_email(db, email=form_data.username) if not user: new_user = schemas.UserCreate(email=form_data.username, password="") user = crud.create_user(db=db, user=new_user) access_token = main.create_access_token(data={"email": user.email}) response = JSONResponse({}, status_code=200) response.set_cookie( "Authorization", value=f"Bearer {access_token}", httponly=True, # max_age=os.environ["COOKIE_EXPIRATION_SECONDS"], # expires=os.environ["COOKIE_EXPIRATION_SECONDS"], ) return response
def get_user_from_token(db, token_data): if token_data and isinstance(token_data, schemas.UserToken): return get_user_by_email(db, email=token_data.email) else: return None