我是Firebase和Android编程的新手,我有一些关于Firebase自定义认证的问题。
我建立了一个社交报告(针对损坏的公共基础设施)的Android应用程序,需要最简单的自动身份验证解决方案。由于这是一个社交报告应用程序,在其中用户不应该在注册过程中输入任何数据。因此,我决定使用Android uuid作为用户的标识符,而不是电子邮件/用户名等。我宽松地实现了用户身份验证和注册。它只需要Android设备uuid来注册/认证(甚至不需要密码)。尽管如此,我认为我已经足够安全地保护了Firebase安全规则中的用户数据。
我已经成功创建了一个自定义自动身份验证/注册服务器,使用Go语言生成并存储Firebase中的数据。这是我的当前工作流程:
- Android客户端自动向我的身份验证服务器发送请求。请求数据包含Android uuid和其他几个数据。我将把它放在onCreate活动中。因此,每次用户打开应用程序时,它都会请求令牌。
- 我的身份验证服务器检查是否在我的Firebase中存储了特定的uuid。如果是,则生成JWT。如果不是,则我的服务器将自动在我的Firebase中创建一个新的用户数据条目,并返回新的JWT。
- 以某种方式在客户端应用程序中保存JWT,并使用它与Firebase进行数据交易。
我成功学习了Android的Firebase库,它非常好并且非常简单。我发现了很多Android http请求库(其中两个是retrofit和volley)。然而,我仍然不确定从Android客户端发送身份验证请求的最佳方法。
基于我上面指定的要求和工作流程,发送自定义身份验证请求的首选/最简单方法是什么?我需要使用http请求库来简化代码吗?代码示例/片段将非常有帮助。在客户端应用程序中存储和使用JWT的最佳方法是什么?我的当前工作流程是否足够好?评估将不胜感激。
顺便说一句,这是我的学校期末项目,不是生产应用程序。因此,我不介意详细的情况,比如用户是否有多部手机,或者购买第二部手机应该具有与先前所有者相同的uuid等。此外,请原谅我的奇怪语法/非惯用语言,因为我不是英语母语人士。