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

Android: Do I really need Firebase custom authentication?

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

用户登录时,我只需要 UsernamePhonenumber。我用代码验证 phone 号码发送短信,所以基本上我可以将用户名和 phone 号码直接添加到 json-树(数据库)时 phonenumber已验证。

有什么理由需要使用 JWT 对用户进行身份验证吗? 在验证号码后,我还将用户名和 phone 号码存储在 SharedPrefrence 中。

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

{
"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"
        }
      }
    }
  }
}