-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathflask_api_template.py
42 lines (29 loc) · 991 Bytes
/
flask_api_template.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from datetime import datetime
from dateutil.relativedelta import relativedelta
from app import create_app, db
app = create_app()
@app.cli.command()
def remove_old_jwts():
"""
Scan the database for JWT tokens in the Revoked Token table older than 5 days
and remove them.
"""
# Import within the function to prevent working outside of application context
# when calling flask --help
from app.models import RevokedTokenModel
delete_date = datetime.utcnow() - relativedelta(days=5)
old_tokens = (
db.session.query(RevokedTokenModel)
.filter(RevokedTokenModel.date_revoked < delete_date)
.all()
)
if old_tokens:
for token in old_tokens:
db.session.delete(token)
db.session.commit()
print(
"{} old tokens have been removed from the database".format(len(old_tokens))
)
else:
print("No JWT's older than 5 days have been found")
return old_tokens