需要澄清正确的身份验证方式(Android应用)

时间:2018-07-06 03:12:13

标签: android spring firebase authentication

我们已经使用RESTFUL API实现了后端服务器和数据库。我们有一个Android应用程序,可以要求服务器将某些数据发送回去。

我们要在Android应用上实现身份验证系统。

团队建议我使用Spring和OAuth,但我个人没有这些经验,因此对这种方法的必要性并不完全信服。

其他朋友建议使用FireBase对用户进行身份验证。

我可以避免使用OAuth / FireBase,而只是将用户的帐户名及其对应的哈希盐密码以及盐一起存储在服务器数据库中吗?从客户端发送的每个请求都将包含帐户名称(可能是服务器在第一个请求上生成的唯一ID,并在电话中另存为SharedPreference)和密码。通过HTTPS协议(因此使用TLS / SSL)完成请求的传输,因此不会透露密码。

最后一段中建议的方法可能存在哪些缺陷?如果这是一种有缺陷的方法,考虑到我们已经在服务器上使用Spring(后端),我应该使用FireBase还是OAuth?

其他上下文

请记住,这是我正在进行的第一个规模较大的项目(该项目计为3学分的大学课程)。我们在这个项目上是3。我正在学习计算机科学,但是我不一定对我们正在使用或计划使用的所有系统都掌握很强。

我们正在创建一个应用程序,允许用户实时查看由某些数据库发布的地图警报(我们目前专注于气象警报)。我们希望能够实现一个登录系统,以便即使应用程序已关闭,人们仍可以接收通知(我们允许用户“订阅”地图上的区域,以指定他们要接收其通知的区域)。

1 个答案:

答案 0 :(得分:0)

OAuth或更好的OpenId Connect是一种协议,而FireBase只是其商务实现之一。在可能的情况下遵循标准总是比实施自己的标准更好。要查看已认证的OIdcC实现的完整列表,请查看OIdC site,并且我至少看到与Spring相关的MITREid Connect项目。我认为您的自定义解决方案将适用于您的自定义案例,但是只有在您考虑到任何可扩展性(例如Google身份验证或访问某些第三方API)之前,