如何从移动应用和节点 API 处理 Firebase 身份验证

Posted

技术标签:

【中文标题】如何从移动应用和节点 API 处理 Firebase 身份验证【英文标题】:How to handle Firebase Auth from mobile app and node API 【发布时间】:2020-04-01 16:57:41 【问题描述】:

我正在 node.js 中构建一个 REST API,它需要使用 Flutter 和一个 React Web 应用程序作为他们的客户端。我面临的问题是我不确定在哪里处理授权。 Flutter 和 React 都具有来自 Firebase 的预构建“UI”,甚至不需要连接到后端。但也有一个选项,只需从表单中获取密码和电子邮件,然后将它们发送到我的 API,然后通过发布请求将它们发送到 Firebase。流程应该是这样的,用户在 Firebase 上注册并被创建,同时他也在我的 API 上被“注册”,所以我可以在他的帐户中附加和存储数据。 我只需要 Firebase 作为授权层,我觉得目前在授权方面我无法构建任何在安全性方面可比的东西。

【问题讨论】:

【参考方案1】:

如果您想在后端使用 Firebase 身份验证帐户,则需要使用 Firebase Admin SDK 到 manage users。特别是,您需要让客户端应用程序发送 SDK 提供的 ID 令牌和 verify the token,以便您的后端可以代表用户执行操作。

【讨论】:

【参考方案2】:

我建议您避免在客户端实现与 Firebase 的集成,而只在服务器端进行。您可以使用 Firebase-Admin 在 node.js 服务器中与 Firebase 集成。然后,注册/登录请求将通过您的 API。

通过这种方式,您的客户端不依赖于第 3 方,并且所有库更新都应该在您的服务器中。

【讨论】:

以上是关于如何从移动应用和节点 API 处理 Firebase 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

节点js停止处理来自角度的多个api请求并在重新启动节点应用程序后工作

Flutter:Google Maps 如何从 Firestore 设置图标

如何在react-native / redux中处理外部数据库更新?

授权代码流,将代码从移动应用程序发送到 REST API

如何防止机器人使用 REST API 调用从移动应用注册新用户?

确定从移动应用到 API 的 Post 请求的加密算法