我已经有身份验证系统
如果您的应用已有登录实现,而您想使用它进行 Firebase 后端服务身份验证,请使用自定义身份验证。使用以下任一身份验证方式的应用均可采用此方法:
- 定制解决方案,例如基于密码的自定义系统。
- 第三方身份管理服务,例如 Auth0 或 OKta。
- 与联合身份提供方(如 Google、Facebook 或 Apple)的现有集成。(如果您还不支持联合身份,但希望使用,请参阅下一部分。)
借助自定义身份验证,您可以让用户通过您选择的系统登录,在后端为用户创建 Firebase 令牌,然后使用客户端提供的令牌进行 Firebase 身份验证。
请参阅适用于 iOS+、Android、Web、Flutter、Unity 或 C++ 的文档。
我想使用 Firebase 构建身份验证系统
如果您要构建新应用或向现有应用添加登录机制,可使用 Firebase 提供的库和服务实现安全身份验证,而无需自行构建身份验证后端。Firebase Authentication 是一个完整的后端解决方案,可供用户使用密码、联合身份提供方、电子邮件链接和短信进行登录。
我需要一个易于使用的普适性解决方案
如需向应用添加身份验证,最快捷、简单的方法是使用 FirebaseUI 身份验证,这是一个普适性界面库。FirebaseUI 为 Firebase Authentication 支持的所有登录方法实现了完整的用户流。
由于 FirebaseUI Auth 是普适性解决方案,因此它提供的特定用户体验可能无法满足您的需求。如果要改变用户体验,您可以复刻此开源库,并根据需要进行修改。但是,对于截然不同的登录流程,您可能更希望通过 Firebase SDK 实现自己的流程(如下一部分所述)。
请参阅适用于 iOS、Android 或 Web 的 FirebaseUI Auth 文档。
我想完全掌控登录体验
为了更好地控制您应用的登录体验,您可以实现自己的身份验证流程,并使用 Firebase SDK 来处理 Firebase 的身份验证服务。例如,您可以构建自己的电子邮件地址和密码流程或 Google 登录流程,并将用户的电子邮件地址和密码或 Google ID 令牌传递给 Firebase,以对用户进行身份验证。
请参阅 Firebase Authentication SDK 文档:
Firebase 服务 | |
---|---|
电子邮件地址和密码登录 | iOS+ | Android | Web | Flutter | Unity | C++ |
电话号码登录 | iOS+ | Android | Web | Flutter | Unity | C++ |
电子邮件链接登录 | iOS+ | Android | Web | Flutter | Unity | C++ |
联合身份 | |
iOS+ | Android | Web | Flutter | Unity | C++ | |
iOS+ | Android | Web | Flutter | Unity | C++ | |
Apple | iOS+ | Android | Web | Flutter | Unity | C++ |
Play 游戏 | Android | Unity | C++ |
Game Center | iOS+ |
GitHub | iOS+ | Android | Web | Flutter | Unity | C++ |
Microsoft | iOS+ | Android | Web | Unity | C++ |
iOS+ | Android | Web | Flutter | Unity | C++ | |
Yahoo | iOS+ | Android | Web | Unity | C++ |
我想打造丰富的登录前体验
您可以利用匿名身份验证,让用户在实际登录前就能使用应用的已登录功能。借助匿名“登录”功能,您可以创建临时的单会话账号,将其当作真实账号一样来使用。然后,在用户登录或注册后,将临时账号与真实账号相关联,使其能够从中断的地方继续操作。
“匿名身份验证”可与“自定义身份验证”或 Firebase 的任何身份验证服务搭配使用。
请参阅适用于 iOS+、Android、Web、Flutter、Unity 或 C++ 的文档。
我想从我的后端访问 Firebase 服务
若要从服务器访问 Firebase 服务,您无需使用 Firebase Authentication。请改用 Admin SDK。初始化 Admin SDK 时,请使用服务账号凭据进行身份验证,这些凭据代表您的 Firebase 项目而非特定用户,会授予对项目资源的完整访问权限。