controlpanel-old/backend/auth.py

35 lines
723 B
Python

from typing import *
from pydantic import ValidationError
from jose import jwt
from settings import settings
from proto import FrontendToken, ComputerToken
def encode(data):
return jwt.encode(data, settings.secret_key)
def decode(token):
return jwt.decode(token, settings.secret_key)
def validate_frontend(token) -> Optional[FrontendToken]:
try:
data = decode(token)
return FrontendToken.parse_obj(data)
except ValidationError as e:
print(e)
return None
def validate_computer(token) -> Optional[ComputerToken]:
try:
data = decode(token)
return ComputerToken.parse_obj(data)
except ValidationError as e:
print(e)
return None