我正在iOS应用程序中构建“注册/登录/保存”功能。
对于“注册/登录”,我选择“ Firebase Auth”。
但是,Firebase Auth只能保存基本属性(例如电子邮件地址,密码,URL等)
因此,为了保存用户的其他属性,我计划单独使用其他MySQL数据库。(通过制作用户数据库,用户表,用户ID主键和其他列)
要与Firebase Auth和MySQL通信,我发现必须进行用户验证。
然后将使用JWT(Json Web令牌)进行验证。
但是,为了使用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。要验证用户,在“注册”步骤中,我是否需要预先在Firebase Auth和MySQL中存储公用密钥?
问题2-1-1。 (如果是的话)在Firebase Auth和MySQL中使用相同的数据会不会带来安全问题? (当然,我不能在MySQL中保存任何其他私有数据(密码,电话号码等))
问题2-1-2。 (如果是)您如何看待通用密钥的最佳数据? (用户ID,电子邮件地址,自动增加的用户ID等)
问题2-2。 (如果没有)如何通过iOS同步Firebase和MySQL?
问题3。那整个过程是正确的吗?
这是我第一次构建此功能。
请回答我的问题!
预先谢谢你!
答案 0 :(得分:1)
否,您不需要预先存储公用密钥。
当用户登录时,您将在客户端(iOS设备)上获得一个JWT。然后,将此JWT附加到针对服务器的每个请求的标头。然后,在您的服务器上,您将使用此JWT向Firebase进行身份验证,如果成功,它将返回您的用户ID。而且您可以将其存储在数据库中。