Dans Pyramid, en utilisant Beaker pour les séances, comment puis-je le faire pour que certaines réponses n'incluent pas les cookies?
Actuellement, si je recroqueville une URL sur mon application, je reviendrai quelque chose comme:
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
Je n'ai pas besoin que ce cookie soit défini avec toutes les demandes. Par exemple, je voudrais le supprimer des demandes qui ont le sous-domaine "API". J'ai essayé de changer:
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()
Ce que je pensais faire en sorte que l'usine de session ne soit pas définie dans ces cas et donc pas de cookies. Je ne comprends pas assez bien ce qui se passe avec le middleware. Je serais également d'accord pour trouver un moyen de le faire pour que les objets de réponse qui ont un mimetype "application / json" n'incluent pas ce cookie. Toute aide serait très appréciée.