认证
您可以在您的 Flet 应用中使用第三方身份提供者(如GitHub、Google、Azure、Auth0、LinkedIn 等)实现用户身份验证(“登录使用 X”按钮)。
身份提供者必须支持 OAuth 2.0 授权码流程 来检索 API 访问令牌。
内置的 Flet 登录凭据和用户管理计划在未来发布中实现。 如果您的应用需要创建和管理用户帐户,您可以自行实现,或者使用 Auth0 身份提供者,它提供了一个慷慨的免费层级。
Flet 认证功能:
- 适用于 Flet 桌面、Web 和移动应用。
- 在一个应用中使用多个认证提供者。
- 使用内置的 OAuth 提供者自动获取用户详细信息:
- GitHub
- Azure
- Auth0
- 可选的组获取。
- 自动令牌刷新。
- 使用保存的令牌进行登录(“记住我”)。
- 自定义 OAuth 提供者。
登录流程概述
- 配置 OAuth 提供者(内置或通用),包括客户端 ID、客户端密钥、重定向 URL。
- 调用
page.login(provider)
来启动 OAuth Web 流程。 - 用户被重定向到 OAuth 提供者网站。
- 在提供者网站上,用户登录并同意使用请求的范围访问服务 API。
- 提供者网站将授权代码重定向到 Flet 的 OAuth 回调 URL。
- Flet 交换授权代码以获取令牌,并调用
page.on_login
事件处理程序。 - Flet 应用可以从
page.auth.token
属性检索 API 令牌和用户详细信息从page.auth.user
。
配置 OAuth 提供者
Flet 具有以下内置的 OAuth 提供者:
- GitHub
- Azure
- Auth0
此外,您可以配置一个通 用的 OAuth 提供者,并提供授权、令牌和用户信息端点。
在本指南中,我们将使用 GitHub 帐户配置 Flet 登录页面。
要将 Flet 认证与 GitHub 集成,首先应注册一个新的 GitHub OAuth 应用(配置文件设置 → 开发者设置 → OAuth 应用)。
授权回调 URL 应为以下格式:
{application-url}/oauth_callback
在 OAuth 应用详细信息页面上点击“生成新的客户端密钥”按钮。 将“客户端 ID”和“客户端密钥”值复制到安全位置 - 您将在 Flet 应用中使用它们。