跳转到主要内容

为Pyramid框架提供的一个作为Fedora账号系统OpenID消费者的视图。

项目描述

pyramid_fas_openid为Pyramid框架提供了一个视图,作为Fedora账号系统的OpenID消费者。

此代码依据BSD派生的Repoze公共许可证提供。

其中大部分代码受到了repoze.who.plugins.openid代码的启发(即:从中提取)。该代码可在以下地址找到:[http://quantumcore.org/docs/repoze.who.plugins.openid](http://quantumcore.org/docs/repoze.who.plugins.openid)(无需跟随链接)

在您的Pyramid应用程序中,将pyramid_openid.verify_openid view_callable添加到您的view_configuration中,并在您的.ini文件中添加所需的设置。

以下是一个基本设置示例:openid.store.type = file openid.store.file.path = %(here)s/sstore openid.success_callback = myapp.lib:remember_me

此设置要求您在应用程序目录中有一个名为“sstore”的文件夹,并且在您的lib模块中有一个名为“remember_me”的回调函数。Remember_me将接收当前请求和OpenID提供者返回的其他信息,然后应该执行所需的一切以记住用户 - pyramid.security.remember,将元数据加载到会话中等 - 这部分完全取决于程序员。

此设置将假定其余键的默认值。

一旦配置就绪,就是时候将视图连接到应用程序了。您可以根据自己的需求来操作。

示例:在您的应用程序配置设置代码中,在“return config.make_wsgi_app()”之前添加此行

config.add_route('verify_openid',

pattern='/dologin.html', view='pyramid_openid.verify_openid')

现在您有一个URL可以提交OpenID表单:/dologin.html。根据上述配置,它期望在request.params['openid']中找到用户的OpenID URL。

必需的设置

OpenID数据存储

键:openid.store.type

描述:这决定了python-openid将使用哪种存储来跟踪nonce和其他跨请求数据。请注意,默认值为None,这意味着python-openid使用无状态请求类型。无状态模式不可靠;应选择其他选项。推荐使用文件和mem。

SQL存储尚未经过测试或验证其是否正常工作。它也不推荐使用。

默认:None

示例:要使用文件存储:(openid.store.file.path也必须指定)openid.store.type = file

要使用内存存储:openid.store.type = mem

要使用SQL存储:(openid.store.sql.connection_string和openid.store.sql.associations_table也必须指定)这尚未经过测试且无法工作 openid.store.type = sql

可选设置

成功的登录回调

键:openid.success_callback

描述:这是一个在OpenID提供者成功验证后被调用的可调用对象。该可调用对象将传递三个参数;当前上下文、当前请求和一个具有以下结构的字典

{
    'identity_url': The user's unique URL from the provider,
    'ax':           A dictionary containing all the returned
            active exchange parameters requested,
    'sreg':         A list containing all the returned
            simple registration parameters requested
}

此回调必须具有以下格式:module.optional_submodules:function

从该可调用对象返回的内容将作为响应返回。

默认:None

示例:如果回调位于my应用程序包的lib模块中,并且命名为openid_callback,则这是要使用的设置:openid.success_callback = myapp.lib:openid_callback

AX

键:openid.ax_required openid.ax_optional

描述:这些代表通过OpenID属性交换请求的用户数据。

默认:None

示例:要求提供者响应用户的电子邮件:openid.ax_required = email=http://schema.openid.net/contact/email

SX

键:openid.sreg_required openid.sreg_optional

描述:这些代表通过OpenID简单注册请求的用户数据。

默认:None

示例:要求提供者响应用户的电子邮件:openid.sreg_required = email

传入OpenID参数名称

键:openid.param_field_name

描述:当首次提交包含用户OpenID URL的请求时,必须从request.params中通过一个键来检索它。这是request.params中该键的名称。

默认:openid

示例:提交后,用户的OpenID URL将位于request.params['users_openid_url']中:openid.param_field_name = users_openid_url

错误目的地

键:openid.error_destination

描述:当OpenID验证过程中的某项操作失败时,用户将被发送到该URL。错误信息将按照openid.error_flash_queue的指定存储在request.session.flash队列中。

默认:request.referrer

示例:在失败时将用户发送到http://www.example.com/sorry.html:openid.error_destination = http://www.example.com/sorry.html

错误闪存队列

键:openid.error_flash_queue

描述:如果OpenID过程中出现问题,错误信息将被放入request.session.flash消息队列中,这是该队列的名称。

默认:默认闪存队列('')

示例:将错误信息放入“OpenIDErrors”闪存队列:openid.error_flash_queue=OpenIDErrors

领域名称

键:openid.realm_name

描述:这是传递给OpenID提供程序的领域参数的值。这是为了完整性而在这里,但除非你知道自己在做什么,否则没有必要更改它。

默认:request.host_url

示例:将领域设置为“www.example.com”:openid.realm_name = http://www.example.com

注意:更改realm_name很可能会导致您的请求失败。

条件设置

文件存储路径

键:openid.store.file.path

描述:如果使用文件存储路径,则需要一个可写文件夹以存储数据。这是该路径。

默认:无默认值

示例:在与开发.ini相同的文件夹中存储数据到名为“sstore”的文件夹中:(注意您必须创建此目录)openid.store.file.path = %(here)s/sstore

SQL连接字符串

键:openid.store.sql.connection_string

描述:这是python-openid存储其临时数据的数据库的连接字符串。这尚未经过测试且尚不可用。

默认:无默认值

SQL关联表

键:openid.store.sql.associations_table

描述:这是python-openid将临时数据存储的表名。这尚未经过测试且尚不可用。

默认:无默认值

项目详情


下载文件

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

源分布

pyramid_fas_openid-0.4.0.tar.gz (8.9 kB 查看散列)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面