30 lines
1.3 KiB
Python
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
|