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: randToken = secrets.token_hex(1023) dateCreated = datetime.datetime.now() if rememberMe: dateExpiry = dateCreated + datetime.timedelta(days=30) else: dateExpiry = dateCreated + datetime.timedelta(days=1) dateExpiryStr = dateExpiry.strftime("%G-%m-%d %X") dateCreatedStr = dateCreated.strftime("%G-%m-%d %X") debugPrint("Now initialising new token with following attributes : ownerID = " + str(userID) + ", rememberMe = " + str(rememberMe) + ", locationIP = " + locationIP + "...") dbHandler.insertRow(dbConnection, 'authtokens', ['token', 'ownerid', 'datecreated', 'dateexpiry', 'iplocationcreated'], [randToken, userID, dateCreatedStr, dateCreatedStr, locationIP ]) return randToken