في الهرم ، باستخدام دورق للجلسات ، كيف يمكنني جعلها بعض الاستجابات لا تشمل ملفات تعريف الارتباط؟
حاليًا إذا قمت بالتجول في أي عنوان URL على تطبيقي ، فسأعود شيئًا مثل:
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Thu, 07 Nov 2013 02:14:45 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 776
Connection: keep-alive
Set-Cookie: beaker.session.id=0a6d945c09884ca29d73bc4ff4d09ff0; expires=Thu, 07-Nov-2013 03:14:45 GMT; httponly; Path=/; secure
لا أحتاج إلى تعيين ملف تعريف الارتباط مع جميع الطلبات. على سبيل المثال ، أود إزالته من الطلبات التي تحتوي على نطاق فرعي "API". حاولت التغيير:
def main(global_config, **settings):
session_factory = session_factory_from_settings(settings)
config = Configurator(settings=settings, root_factory=get_root)
config.set_session_factory(session_factory)
return config.make_wsgi_app()
إلى:
def main(global_config, **settings):
session_factory = session_factory_from_settings(settings)
config = Configurator(settings=settings, root_factory=get_root)
#config.set_session_factory(session_factory)
return MethodOverride(config, session_factory)
class MethodOverride(object):
def __init__(self, config, session_factory):
import copy
self.config = copy.deepcopy(config)
config.set_session_factory(session_factory)
self.application = config.make_wsgi_app()
def __call__(self, environ, start_response):
if "api" == environ['HTTP_HOST'].split('.')[0]:
self.application = self.config.make_wsgi_app()
الذي اعتقدت أنه سيجعله حتى لا يتم تعيين مصنع الجلسة في تلك الحالات وبالتالي لا توجد ملفات تعريف الارتباط. لا أفهم ما يجري مع الوسيطة بشكل جيد بما فيه الكفاية. سأكون على ما يرام أيضًا في اكتشاف طريقة لجعلها ، لذا لا تتضمن كائنات الاستجابة التي تحتوي على "تطبيق/JSON" هذا ملف تعريف الارتباط. أي مساعدة سيكون محل تقدير كبير.