【问题标题】:Securely store Android Firebase Auth users in a MySQL database将 Android Firebase Auth 用户安全地存储在 MySQL 数据库中
【发布时间】:2018-01-05 05:17:13
【问题描述】:

我正在创建一个 Android 本机应用程序,并且我正在使用 Firebase 身份验证和多个身份验证提供,例如;电子邮件、Facebook、Google 等,我将使用 Firebase SDK 进行聊天和实时数据库。

我有一个带有 MySQL 的 RESTful API(类似于 Facebook 的;朋友、私人和公共帖子),一个 PHP 服务器后面的用户数据库,我想同步 Auth 以便我可以确保用户是正确的并有权访问他们有权访问的数据。我可以编辑和更改我的数据库,以便根据此处的建议对其进行调整。

(我最初认为我可能需要像 OAuth 这样的东西,但我不再认为这是必要的)

经过大量研究,我认为我需要将用户电子邮件和 Firebase 身份验证令牌安全地传送到 MySQL,同时保持详细信息同步?这似乎是一件很常见的事情,但我一直无法找到明确的答案。

(如果以上说法为真)

我的问题是:

  • 电子邮件和身份验证令牌是通过服务器对用户进行身份验证所需的全部内容
  • 是否应该使用 PHP SDK 将 Auth 令牌发送到 Firebase SDK
  • 关于安全性,凭据应如何存储在 MySQL 数据库中
  • 身份验证令牌如何过期和/或刷新
  • 应如何将信息从 Android 客户端安全地发送到 MySQL 数据库
  • 更新 Auth 令牌的正确程序和策略是什么
  • 什么是 Auth 详细信息的正确同步策略,例如客户端和服务器之间的电子邮件地址和令牌
  • 我是否走在正确的轨道上 :)

我对大多数 Auth 概念都很陌生。

最好的问候

【问题讨论】:

    标签: mysql authentication synchronization firebase-authentication credentials


    【解决方案1】:
    1. 电子邮件和身份验证令牌是通过服务器对用户进行身份验证所需的全部内容:您只需要身份验证 ID 令牌。您可以从中获取电子邮件。每次将 ID 令牌发送到您的服务器时,您都需要对其进行验证。检查https://firebase.google.com/docs/auth/admin/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library

    2. 是否应该使用 PHP SDK 将 Auth 令牌发送到 Firebase SDK:反之亦然。 ID 令牌在客户端,您调用 getIdToken 然后将其发送到您的后端服务器。

    3. 就安全性而言,凭据应如何存储在 MySQL 数据库中:您不需要将凭据存储在数据库中。您可以存储会话信息,但凭据是在客户端生成和刷新的。

    4. 身份验证令牌如何过期和/或刷新:调用 user.getIdToken 将始终返回一个新令牌。如果令牌未过期,则返回缓存的令牌。如果过期,它将被刷新并返回新的。每次经过身份验证的用户发送一些请求时,您都需要调用它。
    5. 应如何将信息从 Android 客户端安全地发送到 MySQL 数据库:您应该始终将其与用户的 ID 令牌一起发送。确保您使用 https 协议。始终在您的服务器上验证 ID 令牌。
    6. 更新 Auth 令牌的正确程序和策略是什么:使用 user.getIdToken()
    7. 什么是Auth详细信息的正确同步策略,例如客户端和服务器之间的电子邮件地址和令牌:令牌不需要存储在您的服务器上。您可以信任令牌中的电子邮件。用户的电子邮件可能会在客户端更新。发生这种情况时,令牌电子邮件也应更新。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 2017-03-06
      • 2011-07-11
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      相关资源
      最近更新 更多