金字塔Web应用程序中的(会话)身份验证

时间:2012-08-13 21:03:16

标签: python pyramid beaker

我正在开发基于金字塔框架的python Web应用程序。我正在尝试添加会话身份验证。据我了解:

  • 用户可以登录/退出(安全性是可取的);用户数据保存在数据库中
  • 身份验证通过会话(request.session
  • 处理

首先:会话身份验证是一个不错的选择还是有更好的选择? 其次:我无法真正做出文档和示例的正面或反面。

到目前为止,到目前为止我已经关注http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/tutorials/wiki2/authorization.html#adding-login-and-logout-views我有登录/注销表单。但是,我的authn_policyhttp://docs.pylonsproject.org/projects/pyramid/en/latest/api/authentication.html#pyramid.authentication.SessionAuthenticationPolicy

由于金字塔中的会话工厂不安全(请参阅http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/narr/sessions.html),我使用* pyramid_beaker *代替。

配置是: 在__init__.pysession_factory = session_factory_from_settings(settings)

.ini文件中的

beaker.session.lock_dir = %(here)s/data/sessions/lock
beaker.session.type = ext:database
beaker.session.sa.url = mysql://user:pass@localhost:3306/db
beaker.session.table_name = user_session

我希望我能够清楚地解决问题。

1 个答案:

答案 0 :(得分:0)

我会说这取决于你想做什么。如果您使用Beaker,会话身份验证工作正常,但我喜欢使用AuthTktAuthenticationPolicy进行额外的超时和重发选项,以及即使您清除会话也不会消失身份验证的事实。