Wie kann ich in der Pyramide, die Becher für Sitzungen verwenden, es so darstellen, dass bestimmte Antworten keine Kekse enthalten?
Wenn ich derzeit eine URL in meiner App kräuselte, bekomme ich so etwas wie:
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
Ich brauche nicht, dass das Cookie mit allen Anfragen festgelegt wird. Zum Beispiel möchte ich es aus Anfragen entfernen, die die Subdomain "API" haben. Ich habe versucht zu ändern:
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()
zu:
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()
Was ich dachte, würde es so schaffen, dass die Sitzungsfabrik in diesen Fällen nicht festgelegt wird und daher keine Cookies. Ich verstehe nicht, was mit der Middleware gut genug los ist. Es würde mir auch in Ordnung sein, einen Weg zu finden, um es zu machen, damit Antwortobjekte mit einem "Anwendung/JSON" -Mimetyp diesen Cookie nicht enthalten. Jede Hilfe wäre sehr geschätzt.