35 lines
723 B
Python
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 |