我正在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。那么,整个过程是否正确?
这是我构建此功能的第一次经历。 请回复我的问题! 先感谢您!
不,您不需要提前存储公用密钥。
当用户登录时,您将在客户端(iOS设备)上获得JWT。然后,您将把这个JWT附加到服务器的每个请求的标题中。然后在您的服务器上,您将使用此JWT对Firebase进行身份验证,如果成功,将返回用户ID。并且您可以存储在您的数据库中。