2012-04-04 93 views
1

我试图按照这里的说明(http://docs.pylonsproject.org/projects/pyramid_beaker/en/latest/),所以我可以设置会话/登录系统。这些指示让我很困惑。什么是“默认激活设置”?这是否意味着当我调用config.include('pyramid_beaker')时,会话工厂已经有配置,因此调用pyramid_beaker.BeakerSessionFactoryConfig()是不必要的?如何为会话和登录系统设置pyramid_beaker?

我可以使用pyramid_beaker工作的安全登录/权限系统的最简单方法是什么?

回答

3

烧杯是一个用于处理缓存和会话(即非持久数据)的库。您可以劫持会话并使用它来存储用户是否已登录(request.session['user_id'] = some_id或通过pyramid.authentication.SessionAuthenticationPolicy)。这两种方法都只是在会话中存储/跟踪当前用户标识,而不是在其他一些cookie中。但是请注意,这已经无关权限您用于处理用户凭据,并在登录他们的工作流程。

是,config.include('pyramid_beaker')会自动通过您的INI设置来配置你的缓存区域和会话工厂(这些设置记录在您提供的链接以及单独的烧杯文档中)。

围绕此构想设置登录/权限系统的最简单方法是遵循金字塔文档中的wiki教程。它显示了如何使用AuthTktAuthenticationPolicy从SQLAlchemy登录用户,如果您认为有必要,您可以用SessionAuthenticationPolicy轻松替换。

+0

所以我的理解是:AuthTktAuthenticationPolicy是金字塔的内置方式来跟踪user_id,其中SessionAuthenticationPolicy是一种方式让您使用自己的自定义会话(如烧杯)来跟踪user_id? – zakdances 2012-04-04 05:03:09

+0

AuthTkt仅使用自己的Cookie来跟踪登录用户的用户名。 Cookie的格式恰好是标准格式,允许其他系统为SSO读取它。您还可以使用SessionAuthenticationPolicy跟踪会话中的用户标识,但通常会话与认证是正交的(尽管PHP可能教会了您)。 – 2012-04-04 15:51:59