c# - Firebase:如何将身份验证添加到 cli 应用程序中

标签 c# .net firebase firebase-authentication command-line-interface

我正在寻找为 Linux、Windows 和 Mac 构建一个 CLI 应用程序(最有可能使用 C#)。该应用程序将全部访问我的一些 API,这些 API 已经部署在云中。这些 API 使用 Firebase Auth 进行保护。目前,身份验证是通过我的网站完成的,我支持社交登录,例如 GitHub、Google 等。

现在,当谈到将身份验证添加到 CLI 应用程序时,我完全被难住了。我一直在谷歌上搜索这个,但找不到任何可以说明您需要使用的内容。我需要打包管理 SKD 吗?如何保护我的 Firebase key (是否需要在 CLI 应用中)?

有人能给我指出正确的方向吗?

提前非常感谢

最佳答案

对于电子邮件和密码身份验证,您可以使用 Firebase Auth REST API使用提供的凭据创建/登录用户。
对于 Google 和 Github 等 OAuth 提供商,您可以遵循 RFC 8628 中描述的 OAuth 2.0 设备授权流程。然后调用 Firebase 的“使用 OAuth 凭据登录”在 Firebase 身份验证中创建用户。以下是 Google Auth 的一般流程:

  1. 向 OAuth 提供商请求设备和用户代码(例如 Google)
  2. 在浏览器中打开返回的链接,并要求用户输入显示的代码(如果当前设备无法打开浏览器,例如在虚拟机中,用户可能必须在任何其他设备中打开浏览器)
  3. 继续轮询访问 token ,直到获得 token 或出现RFC 8628 section 3.5中列出的任何错误。 .
  4. 使用 sign in with OAuth credentials 通过 Firebase 创建/登录用户使用上一步返回的 accessToken 的 REST API。

最后一个 API 将返回 Firebase 身份验证的 idTokenrefreshToken,您可以使用它们在后端进一步验证用户身份。

结账 OAuth 2.0 for limited input device apps了解更多信息。


Do I need to package the Admin SDK?

不可以,Admin SDK 只能在服务器端使用,因为它拥有对您的 Firebase 资源的特权访问权限,例如绕过安全规则。

How to do I protect my Firebase keys (do the need to be in the CLI app)?

key 应该是公开的(就像项目的标识符)。请参阅Is it safe to expose Firebase apiKey to the public?了解更多信息。

关于c# - Firebase:如何将身份验证添加到 cli 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75360514/

相关文章:

c# - 为什么类的这是只读的?

.net - 如何使用 Moq 模拟 DbSet<T>.Load()?

c# - 从 Fileupload 控件在标签中发布文件名 - ASP.NET 4.0 C#

c# - 响应正文内容的 XUnit 测试

WCF 中的 c# 绑定(bind)错误

json - 将 JSON 文件导入 Firebase 错误

android - 使用 Firebase 对 ArrayList 进行排序

c# - 使用 C# 解压 .gz 文件

c# - 了解用户是否已从 C#/.NET 应用程序连接

java.lang.NoClassDefFoundError : Failed resolution of: Lcom/google/firebase/FirebaseApp$IdTokenListener;