私有服务器的Firebase身份验证

问题描述 投票:4回答:1

我正在开发一个扑腾的应用程序,并希望使用Firebase身份验证服务使我的用户能够使用以下方式注册/登录:

  • 电子邮件/通
  • 谷歌
  • Facebook的

我有一个带有MySQL数据库的流明后端REST服务器。

问题:通过大量的firebase文档,我无法理解这应该如何工作的整个流程。

我可以使用应用程序成功创建用户,并且它们出现在firebase控制台中,但是,我不知道如何使它们能够安全地与我的后端服务器通信。

我希望Firebase能够释放访问权限并刷新令牌,供我在应用程序和后端之间进行私密通信,就像AWS cognito那样。相反,它发出一个“ID令牌”,它是JWT令牌,应该在后端验证。但是一旦验证了我该怎么办?

如何将数据库中的用户链接到经过身份验证的用户?存储在数据库中以映射到经过身份验证的用户的内容是什么?

我是否必须通过Admin SDK生成自定义令牌?

或者ID令牌是应该在每个请求上从客户端传递到后端然后验证的东西?但是,我还要将这个ID令牌放到我的数据库中,以便将经过身份验证的用户与他们的数据相关联?

firebase-authentication flutter lumen
1个回答
5
投票

这就是我现在的表现。它很棒。

  1. 在你的后端服务器上安装Firebase admin sdk,如果你使用的是php,这就是我所遵循和完美运行的:PHP Firebase Admin sdk
  2. 在您的客户端(app)中使用firebase SDK获取firebase id Token,我已经使用了Firebase auth package
  3. 将idToken发送到您的后端
  4. 使用Admin SDK验证idToken,如果验证成功,则返回firebase用户对象。您可以对其执行各种管理操作(修改,删除,获取不同的数据等)。
  5. 从Firebase用户获取uid。
  6. 将uid存储在数据库中。
  7. 现在,每次此经过身份验证的用户向您的后端服务器发出请求时,都会将idToken附加到请求的标头。
  8. 每次验证(请参阅步骤4)后端服务器上的idToken,如果验证成功,则提取uid以了解要在数据库中查询的用户。

欢迎任何评论/改进:)

© www.soinside.com 2019 - 2024. All rights reserved.