From c2a63d99c0193fb9d4538829b8aa3863ca754c4d Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 9 Sep 2025 11:28:08 +0800 Subject: [PATCH] fix: Modify document authentication method --- .../middleware/doc_headers_middleware.py | 126 ++++++++++++++---- 1 file changed, 97 insertions(+), 29 deletions(-) diff --git a/apps/common/middleware/doc_headers_middleware.py b/apps/common/middleware/doc_headers_middleware.py index d818b842ca5..83419b19fb0 100644 --- a/apps/common/middleware/doc_headers_middleware.py +++ b/apps/common/middleware/doc_headers_middleware.py @@ -9,43 +9,102 @@ from django.http import HttpResponse from django.utils.deprecation import MiddlewareMixin +from common.auth import handles, TokenDetails + content = """ - + Document + + + + - - + """ @@ -54,9 +113,18 @@ class DocHeadersMiddleware(MiddlewareMixin): def process_response(self, request, response): if request.path.startswith('/doc/') or request.path.startswith('/doc/chat/'): - HTTP_REFERER = request.META.get('HTTP_REFERER') - if HTTP_REFERER is None: + auth = request.COOKIES.get('Authorization') + if auth is None: return HttpResponse(content) - if HTTP_REFERER == request._current_scheme_host + request.path: - return response + else: + try: + token = auth + token_details = TokenDetails(token) + for handle in handles: + if handle.support(request, token, token_details.get_token_details): + handle.handle(request, token, token_details.get_token_details) + return response + return HttpResponse(content) + except Exception as e: + return HttpResponse(content) return response