-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdependencies.py
More file actions
30 lines (23 loc) · 958 Bytes
/
dependencies.py
File metadata and controls
30 lines (23 loc) · 958 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from fastapi import Depends, HTTPException
from main import SECRET_KEY, ALGORITHM, oauth2_schema
from models import Usuario, db
from sqlalchemy.orm import sessionmaker, Session
from models import Usuario
from jose import JWTError, jwt
def pegar_sessao():
try:
Session = sessionmaker(bind=db)
session = Session()
yield session
finally:
session.close()
def verificar_token(token: str = Depends(oauth2_schema), session: Session = Depends(pegar_sessao)):
try:
dic_info = jwt.decode(token, SECRET_KEY, ALGORITHM)
id_usuario = int(dic_info.get("sub"))
except JWTError:
raise HTTPException(status_code=401, detail="Acesso Negado, verifique a validade do token")
usuario = session.query(Usuario).filter(Usuario.id == 1).first()
if not usuario:
raise HTTPException(status_code=401, detail="Acesso invalido")
return usuario