我正在寻找为 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 的一般流程:
- 向 OAuth 提供商请求设备和用户代码(例如 Google)
- 在浏览器中打开返回的链接,并要求用户输入显示的代码(如果当前设备无法打开浏览器,例如在虚拟机中,用户可能必须在任何其他设备中打开浏览器)
- 继续轮询访问 token ,直到获得 token 或出现RFC 8628 section 3.5中列出的任何错误。 .
- 使用 sign in with OAuth credentials 通过 Firebase 创建/登录用户使用上一步返回的
accessToken
的 REST API。
最后一个 API 将返回 Firebase 身份验证的 idToken
和 refreshToken
,您可以使用它们在后端进一步验证用户身份。
结账 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/