Blorg-Backend/tokenHandler.py

30 lines
1.3 KiB
Python

import datetime
import secrets
import psycopg2
from psycopg2 import sql
import dbHandler
debug: bool = True
def debugPrint(msg: str) -> None:
if debug:
print("(TOKEN HANDLER) PRINT: " + msg)
def validateTokenExistence(dbConnection: psycopg2.extensions.connection, authToken: str) -> bool:
return dbHandler.checkFieldValueExistence(dbConnection, "authtokens", "token", authToken)
def createToken(dbConnection: psycopg2.extensions.connection, userID: int, rememberMe: bool, locationIP: str) -> str:
debugPrint("Now initialising new token with following attributes : userID = " + str(userID) + ", rememberMe = " + str(rememberMe) + ", locationIP = " + locationIP + "...")
randToken = secrets.token_hex(1023)
dateCreated = datetime.datetime.now()
if rememberMe:
dateExpiry = dateCreated + datetime.timedelta(days=30)
else:
dateExpiry = dateCreated + datetime.timedelta(days=1)
dbHandler.insertRow(dbConnection,
'authtokens',
['token', 'ownerid', 'datecreated', 'dateexpiry', 'iplocationcreated'],
[randToken, userID, dateCreated.strftime("%G-%m-%d %X"), dateExpiry.strftime("%G-%m-%d %X"), locationIP])
return randToken