【问题标题】:How to use Firebase Authentication service and have user in our own database?如何使用 Firebase 身份验证服务并在我们自己的数据库中拥有用户?
【发布时间】:2017-03-17 13:59:06
【问题描述】:

我有自己的node.js 服务器设置,所以我不需要 Firebase 存储和实时数据库服务。从客户端(主要是 Android)我正在尝试使用 Firebase 身份验证服务(G+ 和 FB 登录)对用户进行身份验证,但这会在 firebase 数据库中创建用户。如何在我的数据库中创建用户?

目前,我只是将 Firebase 创建的用户 ID 发送到我的服务器并将其保存在数据库中并生成 JWT 以验证对我的服务器的后续 REST API 请求。

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    最终用户使用 Google/Facebook 登录后,您的客户端应用程序将返回 Firebase JWT token。每当您的应用需要向服务器发送 REST API 请求时,只需将 Firebase JWT 令牌附加到请求正文中即可。

    在您的服务器上,您首先验证传入请求中的 Firebase 令牌。一旦 JWT 安全检查通过(签名、受众、到期等),您就可以提取令牌中的“子”字段(即 user_id),并且仅当 user_id 不在数据库中时才在您的数据库中创建用户记录还没有。

    【讨论】:

    • 我们如何在后端验证 Firebase 令牌? firebase 是否向我们提供了它使用的秘密,以便我们可以使用相同的秘密进行验证?
    • 您可以使用 Firebase Admin SDK 或任何第三方 JWT 库来验证 Firebase 令牌:firebase.google.com/docs/auth/admin/…
    • 这样有效率吗?
    • 是的。 Firebase 令牌可以在您的服务器中进行本地验证。唯一涉及的 RPC 是从 Firebase 下载公共证书,该证书在几个小时内有效(并且可以缓存)。
    • 我刚刚开始研究这个。在 Firebase 的 idToken 中,用于注册 Google/Facebook 的用户,解码后的令牌中是否有一个字段指定用户使用 Google/Facebook 注册,例如firebase.sign_in_provider 会是 Google/Facebook 吗?
    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2018-12-07
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多