我正在使用带有烧杯的金字塔框架作为会话管理的后端,并且我想将 session_id 存储在签名的 cookie 中。session-id 与真实的 user_id 相关联,关联映射将存储在 redis 之类的东西中。我可以简单地使用下面的配置来实现这一点吗?该文档没有提供完整的实现,只显示了一个使用不安全会话工厂的示例。
这是我的配置文件,已编辑为会话详细信息:
session.type = cookie
session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = session_key
session.secret = as98&$Hh94
session.cookie_on_exception = true
这是我的__init__.py
:
config = Configurator(settings=settings)
config.include('pyramid_jinja2')
config.include('pyramid_beaker')
config.include('.models')
config.include('.routes')
config.include('polatick.models')
config.scan()
return config.make_wsgi_app()
我是否只是使用金字塔中的忘记和记住功能来正确执行此操作?
我在想这个过程会像这样简单:
if user_authenticates():
session_id = create_session_id()
redis.put_entry(session_id, user_id)
request.session['session_id'] = session_id
headers = remember(request, login)
return HTTPFound('/', headers=headers)
我一直在关注这个文档:
http ://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/pylons/sessions.html