认证提供程序
认证提供程序确认用户的身份。用户通过 auth provider 的登录流程来证明其身份。Auth provider 定义登录流程,并要求用户提供所需的所有信息。这通常是用户名和密码,但也可以包括 2FA token 或其他挑战。
一旦认证提供程序确认了用户的身份,它将以 Credentials 对象的形式将其传递给 Home Assistant。
定义 auth provider
Info
我们目前仅支持内置的 auth provider。对自定义 auth provider 的支持将来可能会推出。
Auth 提供程序定义在 homeassistant/auth/providers/<提供程序名称>.py 中。Auth 提供程序模块需要提供 AuthProvider 类和 LoginFlow 类的实现,它根据 data_entry_flow 向用户询问信息并对其进行验证。
有关完全实现的 auth provider 示例,请参见 insecure_example.py。
Auth 提供程序应扩展 AuthProvider 类的以下方法。
Auth 提供程序应扩展 LoginFlow 类的以下方法。
LoginFlow 的 async_step_init
Info
我们可能在未来不久更改此接口。
LoginFlow 继承自 data_entry_flow.FlowHandler。数据录入流程的第一步硬编码为 init,因此每个流程都必须实现 async_step_init 方法。async_step_init 的模式类似于以下伪代码:

