Example #1
0
async def get_current_account(token: str = Depends(oauth2_scheme),
                              db: Session = Depends(get_db)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )

    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        email: str = payload.get("sub")
        if email is None:
            raise credentials_exception
        token_data = schemas.TokenData(email=email)
    except JWTError:
        raise credentials_exception

    account = get_account(db, email=token_data.email)
    if account is None:
        raise credentials_exception

    print("see role: " + account.role.role_name)
    schema_account = schemas.Account(user_id=account.user[0].user_id,
                                     account_id=account.account_id,
                                     email=account.email,
                                     role_id=account.role_id,
                                     disabled=account.disabled)
    return schema_account
Example #2
0
async def get_current_user(token: str = Depends(oauth2_scheme),
                           db: Session = Depends(get_db)):
    try:
        credentials_exception = HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Invalid Credentials",
            headers={"WWW-Authenticate": "Bearer"},
        )
        try:
            payload = jwt.decode(token,
                                 crud.SECRET_KEY,
                                 algorithms=[crud.ALGORITHM])
            email: str = payload.get("sub")
            if email is None:
                raise credentials_exception
            token_data = schemas.TokenData(email=email)
        except JWTError:
            raise credentials_exception
        user = get_user(db=db, email=token_data.email)
        if user is None:
            raise credentials_exception
        return user
    except Exception as e:
        print(e)
        raise HTTPException(status_code=400,
                            detail={"message": "Invalid Credentials"})
Example #3
0
async def get_current_user(token: str = Depends(oauth2_scheme),
                           db: Session = Depends(database.get_db)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )
    try:
        print("jwt decode started")
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        print("jwt decode successfull")
        username: str = payload.get("sub")
        print(username)
        if username is None:
            raise credentials_exception
        token_data = schemas.TokenData(username=username)
    except JWTError:
        print("jwt error!!!")
        raise credentials_exception
    user = db.query(models.User).filter(
        models.User.username == token_data.username).first()
    if user is None:
        print("user doesn't exist")
        raise credentials_exception
    return user
Example #4
0
def verify_tokens(token: str, credentials_exception):
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        email: str = payload.get("sub")
        if email is None:
            raise credentials_exception
        token_data = schemas.TokenData(email=email)
    except JWTError:
        raise credentials_exception
Example #5
0
async def get_current_google_user(security_scopes: SecurityScopes,
                                  token: str = Depends(oauth2_scheme),
                                  db: Session = Depends(get_db)):
    credentials_exception = HTTPException(
        status_code=HTTP_403_FORBIDDEN,
        detail="Could not validate credentials")
    #db = get_db()
    print(token)
    qrl.log_info(logging, db)
    qrl.log_info(logging, token)

    if security_scopes.scopes:
        authenticate_value = f'Bearer scope="{security_scopes.scope_str}"'
    else:
        authenticate_value = f"Bearer"
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": authenticate_value},
    )

    if token is not None:
        try:
            payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
            print("the payload is.................")
            print(payload)
            print("-----------------------------------")
            #qrl.log_info(logging, payload.__dict__)
            email: str = payload.get("sub")
            if email is None:
                raise credentials_exception
            token_scopes = payload.get("scopes", [])
            print(token_scopes)
            print(payload.get('scopes'))
            token_data = schemas.TokenData(scopes=token_scopes, username=email)
        except (JWTError, ValidationError):
            return credentials_exception
        print("I am the current_user")
        print(email)
        if email is not None:
            authenticated_user = crud.authenticate_user_email(db, email)
            print(authenticated_user.id)
            if authenticated_user.position == 'owner':
                hotel_names = crud.get_hotels_by_username(
                    db, authenticated_user.id)
                print(hotel_names)
                return schemas.HotelScope(email=authenticated_user.email,
                                          position=authenticated_user.position,
                                          hotels=hotel_names)
            else:
                return schemas.HotelScope(email=authenticated_user.email,
                                          position=authenticated_user.position,
                                          hotels=[])
Example #6
0
def verify_token(token: str):
    credentials_exception = HTTPException(
    status_code=status.HTTP_401_UNAUTHORIZED,
    detail="Could not validate credentials",
    headers={"WWW-Authenticate": "Bearer"},
    )
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        email: str = payload.get("sub")
        if email is None:
            raise credentials_exception
        token_data = schemas.TokenData(email=email)
    except JWTError:
        raise credentials_exception
Example #7
0
def get_current_user(token: str = Depends(oauth2_scheme)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        username = payload.get("sub")
        if username is None:
            raise credentials_exception
    except PyJWTError:
        raise credentials_exception
    return schemas.TokenData(current_user=username)
Example #8
0
async def verify_token(credentials_exception: HTTPException,
                       token: str = Depends(oauth2_scheme)):
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        email: str = payload.get("sub")
        if email is None:
            raise credentials_exception
        token_data = schemas.TokenData(email=email)
    except JWTError:
        raise credentials_exception
    # user = ModelUser.get_user_email(token_data.email, db)
    user = await ModelUser.get_user_email_async(token_data.email)

    if user is None:
        raise credentials_exception
    return user
Example #9
0
async def get_current_user(token: str = Depends(oauth2_scheme), db: Session = Depends(get_db)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"}
    )
    try:
        payload = jwt.decode(token, utils.SECRET_KEY,
                             algorithms=[utils.ALGORITHM])
        username: str = payload.get("sub")
        if username is None:
            raise credentials_exception
        token_data = schemas.TokenData(username=username)
    except PyJWTError:
        raise credentials_exception
    user = crud.get_user_by_username(db, token_data.username)
    if user is None:
        raise credentials_exception
    return user
async def get_current_detail_account(token: str = Depends(oauth2_scheme),
                                     db: Session = Depends(get_db)):
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": "Bearer"},
    )

    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        email: str = payload.get("sub")
        if email is None:
            raise credentials_exception
        token_data = schemas.TokenData(email=email)
    except JWTError:
        raise credentials_exception

    account = get_account(db, email=token_data.email)
    if account is None:
        raise credentials_exception

    print("see role: " + account.role.role_name)
    schema_account = schemas.Account(user_id=account.user[0].user_id,
                                     account_id=account.account_id,
                                     email=account.email,
                                     role_id=account.role_id,
                                     disabled=account.disabled)

    db_user = db.query(models.User).filter(
        models.User.user_id == account.user[0].user_id).first()
    db_user.lastTimeActive = datetime.today()
    db.commit()
    db.refresh(db_user)
    print("User Activity | user_id: ", db_user.user_id, " | time: ",
          datetime.today())

    return schema_account