Cherrypy 3.2 сессии прерваны, или я делаю это неправильно? - PullRequest
1 голос
/ 08 февраля 2012

Запуск Python 3 с cherrypy 3.2, и были проблемы. Прежде всего, чтобы заставить куки работать, мне пришлось подделать fqdn в /etc/hosts.

e.g. 
http://test:8080 [no cookies]
http://test.local:8080 [cookies work]

После этого я пытался заставить сеансы работать, но я каждый раз получаю новый идентификатор сеанса, и в cookie нигде в браузере не устанавливается значение session_id.

class HelloWorld:
  @cherrypy.expose
  def index(self, *args):

    print("\n\n")
    ###   test cookies (works fine, no problems)
    print(cherrypy.request.cookie)
    cherrypy.response.cookie['c1'] = 'val1'
    cherrypy.response.cookie['c1']['max-age'] = '3600'   

    cherrypy.response.cookie['d1'] = 'val2'
    cherrypy.response.cookie['d1']['max-age'] = '3600'   

    ###   test sessions (doesn't work)

    print(cherrypy.session.load()) # always returns None

    print(cherrypy.session.id) # different every refresh

    print(cherrypy.session.get('foo')) # always returns None
    cherrypy.session['foo'] = 'bar'

    cherrypy.session.save() # apparently has no effect

  return "Hello world!"

Может кто-нибудь предложить какой-нибудь совет или предложение? Я вижу, что в chrome не устанавливаются файлы cookie с идентификатором сеанса, хотя другие мои значения:

Мой конфиг выглядит так:

'/': {'tools.sessions.on': True,
      'tools.sessions.timeout': 7200}}

Есть идеи?

1 Ответ

2 голосов
/ 06 мая 2012

Я столкнулся с той же проблемой. Я добавил tools.sessions.name в конфигурацию cherrypy, и теперь она работает

...