43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
# Copyright (C) 2025 AIDC-AI
|
|
# Licensed under the MIT License.
|
|
|
|
"""
|
|
Authentication utilities for ComfyUI Copilot
|
|
"""
|
|
|
|
from typing import Optional
|
|
from .globals import set_comfyui_copilot_api_key, get_comfyui_copilot_api_key
|
|
from .logger import log
|
|
|
|
def extract_and_store_api_key(request) -> Optional[str]:
|
|
"""
|
|
Extract Bearer token from Authorization header and store it in globals
|
|
|
|
Args:
|
|
request: The aiohttp request object
|
|
|
|
Returns:
|
|
The extracted API key if successful, None otherwise
|
|
"""
|
|
try:
|
|
auth_header = request.headers.get('Authorization')
|
|
if auth_header and auth_header.startswith('Bearer '):
|
|
api_key = auth_header[7:] # Remove 'Bearer ' prefix
|
|
set_comfyui_copilot_api_key(api_key)
|
|
log.info(f"ComfyUI Copilot API key extracted and stored: {api_key[:12]}...")
|
|
|
|
# Verify it's stored correctly
|
|
stored_key = get_comfyui_copilot_api_key()
|
|
if stored_key == api_key:
|
|
log.info("API key verification: Successfully stored in globals")
|
|
else:
|
|
log.error("API key verification: Storage failed")
|
|
|
|
return api_key
|
|
else:
|
|
log.error("No valid Authorization header found")
|
|
return None
|
|
except Exception as e:
|
|
log.error(f"Error extracting API key: {str(e)}")
|
|
return None
|