Esempio n. 1
0
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