示例#1
0
文件: users.py 项目: pillmill/oasis-2
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)
示例#2
0
文件: auth.py 项目: alex-wenzel/oasis
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
示例#3
0
文件: main.py 项目: instedd/oasis
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