Android:我真的需要Firebase自定义身份验证吗?

时间:2016-02-09 11:27:49

标签: android firebase firebase-security firebase-authentication firebase-realtime-database

我正在开发一个具有chat功能的应用。我将使用Firebase作为后端,我不知道我的应用中是否需要custom authentication

用户登录时我需要的是UsernamePhonenumber。我验证了使用代码发送短信的电话号码,所以基本上我可以在验证phonenumber时将用户名和电话号码直接添加到json-tree(数据库)。

我是否需要使用JWT对用户进行身份验证?我在验证号码后,还将用户名和电话号码存储在SharedPrefrence中。

1 个答案:

答案 0 :(得分:3)

答案:是的。我需要为我的应用程序进行自定义身份验证,因为每个人都可以进行逆向工程并查看API网址并使用这些默认规则进行访问:

{
"rules": {
    ".read": true,
    ".write": true
    }
}

如果我使用密钥,uid和受信任服务器上的其他数据生成的令牌(JWT)对我的用户进行身份验证(不要在您的应用代码上存储密钥),那么每个人都无法访问该服务器。当然我也需要更改安全规则,因此只有经过身份验证的用户才能访问它:

{
  "rules": {
    "data": {
      "users": {
        "$user_id": {
          // grants write/read access to the owner of this user account
          // whose uid must exactly match the key ($user_id)
          ".write": "$user_id === auth.uid",
          ".read": "$user_id === auth.uid"
        }
      }
    }
  }
}