PressPass后端和流水线,用于流行的Python Social Auth库
项目描述
Social Auth PressPass
Social Auth PressPass
提供了使用PressPass与Python Social Auth的底层和管道实现。它作为social-auth-presspass
在PyPI上提供,主要模块导入为social_auth_presspass
。
当用户使用PressPass登录您的应用程序时,您将收到一份允许用户代表访问您的应用程序的组织列表。
通用安装
无论您的Web框架(或没有)如何,您都需要执行以下几个关键步骤才能开始使用Social Auth PressPass。
创建PressPass应用
使用开发者仪表板创建PressPass应用。名称、价格和访问控制都由您决定。然后,请确保在OpenID Connect部分以下内容:
-
响应类型必须包括
Authorization Code Flow
(code
),因为这是Social Auth PressPass与PressPass本身进行身份验证的方式。 -
客户端类型必须设置为
Public
。(不,这并不意味着任何人都能登录;这意味着客户端身份验证令牌由PressPass本身进行密码学签名。) -
重定向URI必须包含您应用程序登录回调的开发URL和生产URL。如果您在Django中将Social Auth安装在
auth/
路径下,这看起来可能像http://localhost:8000/auth/complete/presspass/
。您可以在每行上添加额外的路径。不支持通配符,所以必须是确切的!
链接您的应用程序
在您的设置中(在Django中,这是您的settings.py
文件),将SOCIAL_AUTH_PRESSPASS_KEY
设置为PressPass开发者仪表板中应用程序的客户端ID。
从这里开始,您就可以开始了!现在您可以像使用其他Python Social Auth后端一样将PressPass后端集成到您的应用程序中。也就是说,这有时可能很复杂,因此我们包括了一个下面的Django快速入门。
Django安装
-
从PyPI安装
social-auth-presspass
和django-social-auth
,并遵循上面所有的说明(在通用安装中)。您还应该遵循django-social-auth
的设置说明,尽管您可以按照以下步骤根据您的用例对其进行增强。 -
将PressPass身份验证后端添加到您的
settings.py
中的SOCIAL_AUTH_AUTHENTICATION_BACKENDS
设置。这可能会看起来像以下内容
SOCIAL_AUTH_AUTHENTICATION_BACKENDS = (
'social_auth_presspass.backends.PressPassBackend',
)
- 将PressPass后端作为Django身份验证后端添加。为此,更改以下设置
AUTHENTICATION_BACKENDS = (
'social_auth_presspass.backends.PressPassBackend',
...
)
如果您仍然希望允许一些用户使用用户名和密码登录(或者如果您想使用管理面板登录系统),请确保在AUTHENTICATION_BACKENDS
中保留Django的内置ModelBackend
AUTHENTICATION_BACKENDS = (
'social_auth_presspass.backends.PressPassBackend',
'django.contrib.auth.backends.ModelBackend',
)
- 如果您想获取有关用户组织的信息,请将PressPass管道添加到您的社交身份认证管道
SOCIAL_AUTH_PIPELINE = (
...
'social_auth_presspass.pipelines.extract_organizations',
'social_auth_presspass.pipelines.link_organizations_to_session',
...
)
请注意,您可能需要将这些管道放在social_details
、social_uid
和auth_allowed
内置管道之后。请注意,除非您希望在没有使用user_information
(即,如果您甚至跟踪用户)的情况下从会话中访问用户的PressPass组织,否则您不需要包括link_organizations_to_session
。
后端
此包仅提供一个后端,即social_auth_presspass.backends.PressPassBackend
。它继承自Python Social Auth OpenID Connect后端,可以像任何其他社交认证后端一样使用。
用户详情
此后端会自动提供presspass_organizations
用户详情,它是一个包含有关用户是1)成员且2)有权代表应用程序访问应用程序的组织的信息的列表。每个组织中的关键字段是uuid
和name
。
管道
此包提供一个管道,即social_auth_presspass.pipelines.link_organizations_to_session
,旨在帮助应用程序利用PressPass认证系统代替其自己的。此管道为PressPass认证的访问者创建两个会话变量
-
presspass_authenticated
:True
如果访问者已经使用PressPass进行了认证(我们建议您使用session.get('presspass_authenticated', False)
,因为无法保证此值已定义且非空),因为没有保证此值已定义且非空。 -
presspass_organizations
:访问者作为成员有权访问您的应用程序的组织列表(每个组织都是从PressPass本身返回的数据序列化的字典)。如果访问者未使用PressPass进行认证,则此值将未设置。所有认证的访问者至少是至少一个组织的成员(即使该组织只是一个自动生成的个人组织)。
示例
有关使用此包进行认证(代替其自己的用户管理系统)的示例应用程序,请参阅OpenAlerts。
许可证
此包根据MIT许可证授权(见LICENSE
)。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。
源分布
构建分布
social-auth-presspass-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e1eee318ebd8f062e77bd5e3a62e0b00f38ad124906e6468dec9b2af7140db05 |
|
MD5 | 5ffd588b0f4a0fdf93e1c553358b4912 |
|
BLAKE2b-256 | d1c392debf916f8df4fac239266b7aaae74d543a100f522d8b0b0103d2e18e77 |
social_auth_presspass-0.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 128c1c85da9b15ce3b533510e0ef979d9a606d75a43388ded6b1480e5de79b57 |
|
MD5 | 014047b74436970e0b7c74982542f8f2 |
|
BLAKE2b-256 | 4c46edf2379b339ebfb670bb733544c66eb3569b44be8499412502055bf6ac79 |