我正在开发一个具有chat
功能的应用。我将使用Firebase
作为后端,我不知道我的应用中是否需要custom authentication
。
用户登录时我需要的是Username
和Phonenumber
。我验证了使用代码发送短信的电话号码,所以基本上我可以在验证phonenumber时将用户名和电话号码直接添加到json-tree(数据库)。
我是否需要使用JWT对用户进行身份验证?我在验证号码后,还将用户名和电话号码存储在SharedPrefrence中。
答案 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"
}
}
}
}
}