async def auth_client_side(request: Request): try: body_bytes = await request.body() auth_code = jsonable_encoder(body_bytes) idInfo = id_token.verify_oauth2_token(auth_code, requests.Request(), configuration.GOOGLE_CLIENT_ID) if idInfo["iss"] not in [ "accounts.google.com", "https://accounts.google.com" ]: raise ValueError("Wrong issuer.") accessTokenExpires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) dateExpires = datetime.utcnow() + accessTokenExpires print(idInfo) user = UserInDB( username=idInfo.get("email"), email=idInfo.get("email"), picture=idInfo.get("picture"), given_name=idInfo.get("given_name"), family_name=idInfo.get("family_name"), disabled=False, ) ret = insert_or_update_user(user) accessToken = create_access_token(data={"username": user.username}, expires_delta=accessTokenExpires, expires_date=dateExpires) return Token( access_token=accessToken, token_type="bearer", expires=accessTokenExpires, date_expires=dateExpires, ) except: return HTTPException(status.HTTP_400_BAD_REQUEST, "Unable to validate Google Login")
def login(req: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)): user = db.query(models.User).filter(models.User.email == req.username).first() if not user: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Invalid Credentials") if not bcrypt.checkpw(req.password.encode("utf-8"), user.password.encode("utf-8")): raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Incorrect password") access_token = create_access_token(user) return {"access_token": access_token, "token_type": "bearer"}
def login(request: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)): user = db.query(models.User).filter(models.User.email == (request.username).lower()).first() if not user: details = "Incorrect Credentials, Check email and password" raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=details) if not Hash.verify_password(user.password, request.password): details = "Incorrect Credentials, Check email and password" raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=details) # generate a jwt token and return it access_token_expires = timedelta(minutes=int(ACCESS_TOKEN_EXPIRE_MINUTES)) access_token = create_access_token(data={"sub": user.email}, expires_delta=access_token_expires) return {"access_token": access_token, "token_type": "bearer"}
def login(request: OAuth2PasswordRequestForm, db: Session ): user = db.query(models.User).filter( models.User.email == request.email).first() if not user: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid credentials") if not Hash.verify(request.password, user.password): raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid password") # generate jwt token and return access_token = create_access_token(data={"sub": user.email}) return {"access_token": access_token, "token_type": "bearer"}
async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends()): user = authenticate_user(form_data.username, form_data.password) if not user: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Incorrect username or password", headers={"WWW-Authenticate": "Bearer"}, ) accessTokenExpires = timedelta(minutes=configuration.ACCESS_TOKEN_EXPIRE_MINUTES) dateExpires = datetime.utcnow() + accessTokenExpires accessToken = create_access_token( data={"username": user.username}, expires_delta=accessTokenExpires, expires_date=dateExpires ) return Token( access_token=accessToken, token_type="bearer", expires=accessTokenExpires, date_expires=dateExpires )
async def auth_server_side(request: Request): token = await oauth.google.authorize_access_token(request) user = await oauth.google.parse_id_token(request, token) accessTokenExpires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) dateExpires = datetime.utcnow() + accessTokenExpires print(user) userDB = UserInDB( username=user.get("email"), email=user.get("email"), picture=user.get("picture"), given_name=user.get("given_name"), family_name=user.get("family_name"), disabled=False, ) ret = insert_or_update_user(userDB) accessToken = create_access_token(data={"username": user.get("email")}, expires_delta=accessTokenExpires, expires_date=dateExpires) return Token( access_token=accessToken, token_type="bearer", expires=accessTokenExpires, date_expires=dateExpires, )