HTTPS/CORS improvements: Enable CORS for player connections, secure session cookies, add certificate endpoint, nginx CORS headers

This commit is contained in:
Deployment System
2026-01-16 22:29:49 +02:00
parent cf44843418
commit c4e43ce69b
15 changed files with 3497 additions and 0 deletions

View File

@@ -52,6 +52,18 @@ def create_app(config_name=None):
# Configure Flask-Login
configure_login_manager(app)
# Initialize CORS for player API access
from app.extensions import cors
cors.init_app(app, resources={
r"/api/*": {
"origins": ["*"],
"methods": ["GET", "POST", "OPTIONS", "PUT", "DELETE"],
"allow_headers": ["Content-Type", "Authorization"],
"supports_credentials": True,
"max_age": 3600
}
})
# Register components
register_blueprints(app)
register_error_handlers(app)

View File

@@ -95,6 +95,12 @@ def health_check():
})
@api_bp.route('/certificate', methods=['GET'])
def get_server_certificate():
"""Get server SSL certificate."""
return jsonify({'test': 'certificate_endpoint_works'}), 200
@api_bp.route('/auth/player', methods=['POST'])
@rate_limit(max_requests=120, window=60)
def authenticate_player():

View File

@@ -91,6 +91,7 @@ class ProductionConfig(Config):
# Security
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_SAMESITE = 'Lax'
WTF_CSRF_ENABLED = True

View File

@@ -7,6 +7,7 @@ from flask_bcrypt import Bcrypt
from flask_login import LoginManager
from flask_migrate import Migrate
from flask_caching import Cache
from flask_cors import CORS
# Initialize extensions (will be bound to app in create_app)
db = SQLAlchemy()
@@ -14,6 +15,7 @@ bcrypt = Bcrypt()
login_manager = LoginManager()
migrate = Migrate()
cache = Cache()
cors = CORS()
# Configure login manager
login_manager.login_view = 'auth.login'