def CreateTokenForUser(usr: User): if usr.id == 0: return # don't make a token for an empty user userobj = usr.ToDict() timeNow = datetime.datetime.utcnow() expireTime = timeNow + datetime.timedelta( days=5) # set it to expire in 5 days userobj['time'] = dumps( timeNow, default=myconverter) # add a time stamp so each token is unique encoded_jwt = jwt.encode(userobj, os.environ['SECRET'], algorithm='HS256') row = (timeNow, expireTime, encoded_jwt.decode('utf-8'), usr.id) con = GetConnection() cursor = con.cursor() sqlite_insert_with_param = "INSERT INTO tokens (creationdate,expirationdate,token,userid) VALUES(?, ?, ?, ?)" cursor.execute(sqlite_insert_with_param, row) con.commit() rowid = cursor.lastrowid cursor.close() return rowid