【发布时间】:2016-07-22 15:12:38
【问题描述】:
我是 Firebase 和 Android 编程的新手,我对 Firebase 自定义身份验证有一些疑问。
我构建了一个社交报告的 android 应用程序(用于损坏的公共基础设施),它需要最简单的自动身份验证解决方案。因为它是一个社交报告应用程序,用户在注册过程中不应该通过输入任何类型的数据来打扰。所以我决定使用 Android uuid 作为用户的标识符,而不是电子邮件/用户名/等。我松散地实现用户身份验证和注册。它只需要 Android 设备 uuid 即可注册/验证(甚至不需要密码)。不过,我认为我已经在 Firebase 安全规则中很好地保护了用户数据。
我已经成功创建了一个使用 Go 语言的自定义自动身份验证/注册服务器,该服务器从 Firebase 本身生成并存储数据。这些是我目前的工作流程:
- Android 客户端自动向我的身份验证服务器发送请求。请求数据包含 Android uuid 和其他几个数据。我将把它放在 onCreate 活动中。所以每次用户打开应用程序时,它都会请求一个令牌。
- 我的身份验证服务器检查该特定 uuid 是否存储在我的 Firebase 中。如果是,则生成 JWT。如果没有,我的服务器将自动在我的 Firebase 中创建一个新的用户数据条目并发回一个新的 JWT。
- 以某种方式将 JWT 保存在客户端应用中,并使用它与 firebase 进行数据交易。
我设法学习了适用于 Android 的 Firebase 库,它很棒而且非常简单。我发现了很多Android http请求库(其中两个是retrofit和volley)。然而,我仍然不确定从 Android 客户端发送身份验证请求的最佳方式。
根据我上面指定的要求和工作流程,在客户端应用程序中发送自定义身份验证请求的首选/最简单方法是什么?我需要使用http请求库来简化代码吗?代码的示例/sn-p 将非常有帮助。在客户端应用程序中存储和使用 JWT 的最佳方式是什么?我目前的工作流程是否足够好?非常感谢评价。
附带说明,这是我学校的期末项目,而不是生产应用程序。所以我不介意复杂的情况,比如用户是否拥有不止一部手机,或者购买第二部手机,它应该与前任所有者拥有相同的 uuid,等等。另外,请像我一样保留我奇怪的语法/非惯用语言我不是以英语为母语的人。
【问题讨论】:
-
任何一个库都可以工作,其他许多库也可以。推荐一个在 Satck Overflow 上是题外话,因为它会导致有意见的答案。只需选择一个您喜欢的并使用它。如果您遇到问题,请返回该问题。
标签: java android authentication firebase firebase-authentication