![]() |
登录框架
用于简化应用开发的登录实用程序。 开发者:Shotgun Software 最新版本::v1.2.2 (Alpha) 我们的版本号遵循语义化版本标准。 系统名称::tk-framework-login |

目录:
概述
一个用于以安全方式管理登录信息的界面,以及一个用于收集信息的标准对话框。还包括一个用于登录 Shotgun 的执行。
文档
登录框架为管理登录服务所用的身份认证信息实现了一个标准。它由一个抽象基础类 (Login
) 和一个执行构成,前者可创建子类来管理特定服务的登录,后者则用于管理 Shotgun 实例的登录 (ShotgunLogin
)。
它还包括以下对话框窗口。

当框架需要为用户登录的服务收集身份认证信息时,会显示此对话框。默认情况下,此窗口针对 Shotgun 登录,但是 Login
的子类可以修改其外观和行为的许多方面。
此框架的设计使它可以用作标准的 Toolkit 框架或独立的 Python 模块(不依赖 Toolkit 核心)。这样,它便可以作为引导过程的一部分,用来查找和初始化 Toolkit 环境。
类 Login API 参考
这是一个抽象类,提供对服务登录信息存储操作的抽象。它会为每个服务存储站点说明(例如用于登录的 URL)、登录名(例如用于登录的用户名)和密码。站点和登录名存储在不加密的设置文件中,密码则使用特定于操作的执行存储在加密的 KeyRing 中。
要使用该接口,只要能够从执行请求登录信息即可:
login_manager = LoginImplementation.get_instance_for_namespace("My Application") login_info = login_manager.login()
如果登录信息已收集完毕,将返回这些信息。如果保存的值成功通过身份认证,将返回得到的登录信息。否则,将向用户显示一个对话框,以收集站点/登录名/密码。
要创建子类,您必须至少执行 _site_connect
,它应该对连接信息进行验证。
默认情况下,由 QT 的 QSettings 存储公共设置,它将使用 QApplication 的 applicationName 和 organizationName 确定设置文件的存储位置。通过在子类中执行 _get_settings
方法,可改写此设置。
默认情况下,系统使用的 KeyRing 将以站点命名(例如,如果登录 http://www.google.com,KeyRing 名称将为“www.google.com.login”),密钥是所使用的登录名。通过在子类中执行 _get_keyring_values
方法,可改写这些默认设置。
通过更改 _dialog_class
的值,可改写弹出的默认对话框。_dialog_kwargs
的值将传递给对话框构造函数。请参见 login_dialog.LoginDialog
的文档了解默认对话框有哪些有效参数。
get_instance_for_namespace()
这个类方法将为给定命名空间返回一个 Login
实例。如果实例已存在,将返回该实例。这将充当一个工厂,让您易于重用登录管理器的实例。
参数和返回值
-
str namespace
- 一个字符串,作用是查询登录管理器。 -
返回值:返回登录管理器的实例
login_manager = get_instance_for_namespace("my-app")
Login 构造函数
初始化登录管理器。
Login()
login()
返回当前经过认证的登录名的登录信息。
此函数将检查保存的值中是否缓存了有效的登录信息。如果未找到任何有效的缓存登录信息,将显示登录对话框。
参数和返回值
-
str site
- 要获取登录信息的站点(None 表示默认站点) -
str dialog_message
- 要在登录对话框中显示的消息 -
bool force_dialog
- 如果为 True,即使检索到有效凭据,也会弹出对话框 - 返回值:失败时返回 None,成功时返回特定于执行的表示。
logout()
退出当前连接。
这将清除所有缓存的值和存储的密码
参数和返回值
-
str site
- 要退出的站点(None 表示默认站点)
类 ShotgunLogin API 参考
针对 Login
类的一个方便的封装器,用于执行 Shotgun 站点的登录信息管理。除了此处介绍的方法,还可使用 Login
的所有方法。
get_login()
返回当前登录的人类用户。否则与 Login 行为一样。
参数和返回值
-
str site
- 要获取登录信息的站点(None 表示默认站点) -
str dialog_message
- 要在登录对话框中显示的消息 -
bool force_dialog
- 如果为 True,即使检索到有效凭据,也会弹出对话框 - 返回值:失败时返回 None,成功时返回登录的人类用户的 Shotgun 实体样式词典。
get_connection()
返回当前登录的连接。否则与 Login 行为一样
参数和返回值
-
str site
- 要获取登录信息的站点(None 表示默认站点) -
str dialog_message
- 要在登录对话框中显示的消息 -
bool force_dialog
- 如果为 True,即使检索到有效凭据,也会弹出对话框 - 返回值:失败时返回 None,成功时返回 Shotgun 连接。
set_default_login()
设置登录对话框中的登录字段的默认值。
参数和返回值
-
str login
- 要为字段设置的字符串
set_default_site()
设置登录对话框中的站点字段的默认值。
参数和返回值
-
str login
- 要为字段设置的字符串
set_http_proxy()
设置连接 Shotgun 时使用的代理。
参数和返回值
-
str http_proxy
- 一个字符串,它将被传递给以下网址介绍的 Shotgun 构造函数:https://github.com/shotgunsoftware/python-api/wiki/Reference%3A-Methods#shotgun
安装和更新
更新至最新版本
如果您已在某个项目中安装了此应用,要获取最新版本,可运行 update
命令。您可以导航到该特定项目随附的 tank 命令,并在该项目中运行它:
> cd /my_tank_configs/project_xyz > ./tank updates
或者,也可以运行您的工作室的 tank
命令并指定项目名称,指示该命令要对哪个项目运行更新检查:
> tank Project XYZ updates
协作和代码演进
![]() |
如果您可以获取 Shotgun Pipeline Toolkit,意味着也可以获取我们在 GitHub 中存储和管理的所有应用、插件和框架的源代码。欢迎根据实际需要演进和完善这些内容,以它们为基础做进一步的独立开发,修改它们(以及向我们提交 Pull 请求!),或者只是随手玩一玩,简单了解它们的构建方式和 Toolkit 的工作原理。您可以通过以下网址访问此代码库:https://github.com/shotgunsoftware/tk-framework-login。 |
特殊要求
- 需要安装 Shotgun Pipeline Toolkit 核心 API 版本 v0.14.58 或更高版本才能使用此功能。
配置
无需配置!
此功能没有任何要配置的选项!