如何通过iOS(swift)将Firebase Auth与MySQL DB同步?

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

我正在iOS应用程序中构建SignUp / LogIn / Saving功能。

对于SignUp / LogIn,我选择“Firebase Auth”。 但是,Firebase Auth只能保存基本属性(例如电子邮件地址,密码,URL等) 因此,为了保存用户的其他属性,我打算单独使用额外的MySQL数据库。(通过创建用户数据库,用户表,用户ID主键和其他列)

为了与Firebase Auth和MySQL通信,我发现用户验证是必须的。 JWT(Json Web Token)将用于验证。

但是,为了使用JWT验证用户,我认为Firebase Auth和MySQL必须事先拥有公共密钥(例如用户ID,电子邮件地址等)。

但我不确定这是否是常见的方式(简单和安全)。

我读过多个帖子,

Securely store Android Firebase Auth users in a MySQL database Can i build an Android app that uses Firebase authentication but a custom database(eg MySQL) Firebase, how to use auth service with a node.js RESTapi backend

但我无法完成这一过程的第一步。

我现在有疑问。 问题1。到目前为止,我所理解的是正确的? 问题2。要验证用户,请在“SignUp”步骤中提前在Firebase Auth和MySQL中存储公用密钥吗? Question2-1-1。 (如果是)通过在Firebase Auth和MySQL中使用相同的数据,这不是一个安全问题吗? (当然,我不能在MySQL中保存任何其他私人数据(密码,电话号码等)) Question2-1-2。 (如果是)您如何看待普通密钥的最佳数据? (userID,电子邮件地址,自动递增的用户ID等) Question2-2。 (如果没有)如何通过iOS同步Firebase和MySQL? 问题3。那么,整个过程是否正确?

  1. 设置iOS,Firebase Auth,MySQL
  2. 当用户注册时,电子邮件地址(也可能是userID)将被发送到Firebase Auth和MySQL。但密码只会发送到Firebase。
  3. 在登录期间,如果用户设置并保存首选项,则iOS会将数据发布到MySQL中“用户”表中的“userID”行。
  4. 当用户再次登录时,iOS将从Firebase Auth获取令牌并发送到MySQL。
  5. 令牌将用于通过比较解密令牌和MySQL公共密钥来验证用户。
  6. 如果经过验证,那么MySQL会将用户的其他属性发送到iOS。
  7. iOS将获取用户的属性数据。

这是我构建此功能的第一次经历。 请回复我的问题! 先感谢您!

ios mysql swift firebase firebase-authentication
1个回答
1
投票

不,您不需要提前存储公用密钥。

当用户登录时,您将在客户端(iOS设备)上获得JWT。然后,您将把这个JWT附加到服务器的每个请求的标题中。然后在您的服务器上,您将使用此JWT对Firebase进行身份验证,如果成功,将返回用户ID。并且您可以存储在您的数据库中。

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