diff options
author | Rasmus Luha <rasmus.luha@gmail.com> | 2022-02-06 13:10:32 +0200 |
---|---|---|
committer | Rasmus Luha <rasmus.luha@gmail.com> | 2022-02-06 13:10:32 +0200 |
commit | 5e19a0569288de21365c61b0db78639880732dd0 (patch) | |
tree | e1d3add7376b53157fe8830cbd81b02c1a3a3586 /Projekt/app/routers/auth.py |
inital commit
Diffstat (limited to 'Projekt/app/routers/auth.py')
-rw-r--r-- | Projekt/app/routers/auth.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Projekt/app/routers/auth.py b/Projekt/app/routers/auth.py new file mode 100644 index 0000000..30668cf --- /dev/null +++ b/Projekt/app/routers/auth.py @@ -0,0 +1,22 @@ +from fastapi import APIRouter, Depends, status, HTTPException, Response +from fastapi.security.oauth2 import OAuth2PasswordRequestForm +from sqlalchemy.orm import Session +from .. import database, schemas, models, utils, oauth2 + +router = APIRouter(tags = ["Authentication"]) + +@router.post("/login", response_model = schemas.Token) +def login(user_credentials: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(database.get_db)): #OAuth2Password... --> nüüd ei oota api requesti bodysse email, password vaid hoopis form-data. + + user = db.query(models.User).filter(models.User.email == user_credentials.username).first() + + if not user: + raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Invalid Credentials unfortunatuun") + + if not utils.verify(user_credentials.password, user.password): + raise HTTPException(status_code=status.HTTP_403_FORBIDDEN , detail="Invalid Credentials unfortunatuun") + + #Create and retrn token + access_token = oauth2.create_access_token(data = {"user_id":user.id}) + + return {"access_token" : access_token, "token_type" : "bearer" } |