Skip to main content

金字塔角色

项目描述

pyramid_persona让您可以 在金字塔项目中使用角色快速设置身份验证。它提供了一种方便地替换登录表单以及随之而来的所有处理和安全问题的方法。它旨在以尽可能少的配置提供尽可能多的内容,同时仍允许您根据需要进行自定义。如果您想查看演示应用程序的一些屏幕截图,请查看此博客文章

你可以在pypi上找到它作为pyramid_persona。也不要忘记检查文档

非常基本的用法

首先,包括pyramid_persona。将此添加到您的项目配置中

config.include("pyramid_persona")

然后,我们需要在您的配置文件中添加两行:用于签署 cookie 的密钥,以及您网站的受众、主机名和端口(出于安全原因,需要这样做):

persona.secret = This is some secret string
persona.audiences = http://localhost:6543

到了,我们完成了。我们现在有一个很好的禁止视图,带有一个角色登录按钮。

较少的基本用法

pyramid_persona还为您提供了一种在页面上轻松放置登录或注销按钮的方法。为此,您需要在脑海中包含 jquery、角色库和一些特定于应用程序的内容。应用程序特定的 javascript 可以作为request.persona_js访问。

然后,您可以在页面中添加按钮。request.persona_button如果用户未登录,则提供登录,如果已登录,则提供注销按钮。

一个基本页面可能是(使用 mako)

<html>
<head>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script src="https://login.persona.org/include.js" type="text/javascript"></script>
    <script type="text/javascript">${request.persona_js}</script>
</head>
<body>
Hello ${user}
${request.persona_button}
</body>
</html>

自定义按钮

您也可以使用自己的按钮。为此,您必须像上一节中那样包含 javascript,并为您的登录和注销按钮提供登录注销类。例如

<button id='signin'>login</button>
<button id='signout'>logout</button>

它能做什么

pyramid_persona 一个登录系统。它取代了登录表单和视图,以及处理密码的需要。

pyramid_persona 不是身份验证策略。它只处理登录过程,并且需要一个身份验证策略来记住请求之间的用户(默认使用SessionAuthenticationPolicy )。

以下是包括pyramid_persona在内的详细信息:

  • 它定义了一个身份验证策略、一个授权策略和一个会话工厂(这是 csrf 保护所需要的,也是我们需要秘密的原因)。默认 值为SessionAuthenticationPolicyACLAuthorizationPolicyUnencryptedCookieSessionFactoryConfig。如果您愿意,可以覆盖它。

  • 它添加了一个persona_js请求属性,其中包含使角色工作所需的 javascript 代码。

  • 它添加了一个包含用于快速放置登录按钮的 html 代码的persona_button请求属性。

  • 它定义了/login/logout视图来处理角色工作流。

  • 它定义了一个带有登录按钮的基本禁止视图。

如果默认行为对您不起作用并且配置不够,您可以替换您喜欢的任何部分。

接触

该项目由 Georges Dubus ( @georgesdubus ) 制作。欢迎提交错误报告和请求请求。

1.6.1

  • 忘记在以前的版本中添加变更日志

1.6

  • 允许使用 url 参数设置(可选) come_from 值

  • 切换到 SignedCookieSessionFactory

1.5

  • 在登录视图响应中添加了成功,以说明登录尝试是否成功,以及是否应将用户视为已登录。

  • 添加了对新 backgroundColor 选项的支持,以更改登录对话框的颜色。

1.4

  • 更改了登录视图和 javascript 代码以实施 mozilla 推荐的做法。logout现在在登录视图中出现错误后调用,并且登录视图的格式已更改。

1.3.1

  • 即使设置了默认权限,也使所有视图都不需要任何权限。

1.3

  • 取决于金字塔 1.4

  • 添加了一些真实的文档

  • 添加了有关如何在登录时进行额外工作的文档,并对其进行了内部更改以使其正常工作。

  • 在登录失败的情况下添加了日志记录。

  • 切换到 AuthTktAuthenticationPolicy 以便登录不会随会话过期。

1.2

  • 修复了登录路径不在“/login”时导致登录失败的错误。

1.1

  • 在 demo/ 中添加了一个示例应用程序。

  • 修复了与金字塔 1.3 的兼容性。

  • 将设置 persona.audience 重命名为 persona.audiences 以匹配 PyBrowserID API。

  • 添加了“persona.verifier”设置来更改验证者。

  • 添加了各种设置来自定义登录对话框。

  • 与 python 3 的兼容性。

1.0

  • 初始版本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyramid_persona-1.6.1.tar.gz (10.7 kB 查看哈希

已上传 source

内置分布

pyramid_persona-1.6.1-py2.py3-none-any.whl (12.1 kB 查看哈希

已上传 py2 py3