首页 > 解决方案 > 使用 Firebase Auth 对其进行身份验证后,如何在最终用户 c# 应用程序中安全地使用 Google Speech API?

问题描述

我的登录流程的背景:

我正在创建一个将分发给最终用户的 C# WPF应用程序。

在我的网站上,我使用 FirebaseUI Auth 进行登录身份验证,以便用户可以使用 Google、Facebook 或电子邮件登录。

当用户启动登录到应用程序时,它会将用户临时转移到网站,该网站在服务器上生成自定义 JWT 令牌,然后返回到网站-> 应用程序,然后应用程序使用新生成的 JWT 令牌来使用FirebaseAuthentication.net进行身份验证以生成 Firebase 身份验证令牌。这非常适合连接到 Firebase REST API (如 Firestore)以获取客户端Application上的用户信息。

问题: 我不仅想连接到 Firebase API,还想连接到 Google Cloud Speech API(在本例中为 Speech-To-Text)。我不相信 Firebase 身份验证令牌足以实现这一目标。我可以验证用户并在服务器或客户端上访问他们的 Firebase 数据,但这不足以连接到 Google Speech-To-Text API。在 Google 的示例中,使用客户端凭据首先需要从其授权端点获取授权码。在Google 的 Windows 应用程序 OAuth 示例中,这是https://accounts.google.com/o/oauth2/v2/auth授权端点。https://cloud.google.com/docs/authentication/

理论化产生了另一个潜在问题,可以更快地回答这个问题: 我可以使用我的 FirebaseUI 身份验证页面作为 OAuth 端点以某种方式通过 Google 验证我的最终用户应用程序以连接到 Google Speech-to-Text API,而不是使用https: //accounts.google.com/o/oauth2/v2/auth端点?

问题: 在使用 Firebase Auth 进行身份验证后,如何从最终用户应用程序访问 Google Cloud Speech-To-Text API?

Google 关于如何以最终用户身份进行身份验证的参考: https ://cloud.google.com/docs/authentication/end-user

标签: c#firebasegoogle-cloud-platformoauth-2.0firebase-authentication

解决方案


Google Cloud Speech API 身份验证需要单独进行。您需要从 Cloud Console 启用此 API 并创建服务帐号密钥。由于这是一个最终用户应用程序,我建议在服务器端进行。Firebase GCP 集成文档中提供了 API 集成示例。


推荐阅读