mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-03 20:13:02 +00:00
fix: chunked audio stream
desc: faulty content range headers + fix: tracks not being removed from db on root dirs change + implement implicit jwt refreshing + remove enableGuest from configs + set jwt validity to 30 days
This commit is contained in:
@@ -2,9 +2,16 @@
|
||||
This file is used to run the application.
|
||||
"""
|
||||
|
||||
from datetime import datetime, timezone
|
||||
import os
|
||||
import logging
|
||||
from flask_jwt_extended import verify_jwt_in_request
|
||||
from flask_jwt_extended import (
|
||||
create_access_token,
|
||||
get_jwt,
|
||||
get_jwt_identity,
|
||||
set_access_cookies,
|
||||
verify_jwt_in_request,
|
||||
)
|
||||
import psutil
|
||||
import mimetypes
|
||||
from flask import Response, request
|
||||
@@ -70,6 +77,25 @@ def verify_auth():
|
||||
verify_jwt_in_request()
|
||||
|
||||
|
||||
@app.after_request
|
||||
def refresh_expiring_jwt(response: Response):
|
||||
"""
|
||||
Refreshes the JWT token after each request.
|
||||
"""
|
||||
try:
|
||||
exp_timestamp = get_jwt()["exp"]
|
||||
now = datetime.now(timezone.utc)
|
||||
target_timestamp = datetime.timestamp(now) + 60 * 60 * 24 * 7 # 7 days
|
||||
|
||||
if target_timestamp > exp_timestamp:
|
||||
access_token = create_access_token(identity=get_jwt_identity())
|
||||
set_access_cookies(response, access_token)
|
||||
|
||||
return response
|
||||
except (RuntimeError, KeyError):
|
||||
return response
|
||||
|
||||
|
||||
@app.route("/<path:path>")
|
||||
def serve_client_files(path: str):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user