Android:我真的需要 Firebase 自定义身份验证吗?
Android: Do I really need Firebase custom authentication?
我正在开发具有 chat
功能的应用程序。我将使用 Firebase
作为后端,但我不知道我的应用程序中是否需要 custom authentication
。
用户登录时,我只需要 Username
和 Phonenumber
。我用代码验证 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"
}
}
}
}
}
我正在开发具有 chat
功能的应用程序。我将使用 Firebase
作为后端,但我不知道我的应用程序中是否需要 custom authentication
。
用户登录时,我只需要 Username
和 Phonenumber
。我用代码验证 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"
}
}
}
}
}