他们在此代码段(firebase文档)中提到,它们不使用user.getUid()来对您的后端服务器进行身份验证。请改用FirebaseUser.getToken()。
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// Name, email address, and profile photo Url
String name = user.getDisplayName();
String email = user.getEmail();
Uri photoUrl = user.getPhotoUrl();
// The user's ID, unique to the Firebase project. Do NOT use this value to
// authenticate with your backend server, if you have one. Use
// FirebaseUser.getToken() instead.
String uid = user.getUid();
}
getUid() A unique user ID, intended as the user's unique key across all providers.
getToken() The Firebase authentication token for this session.
我的要求是。
他们说getUid()是唯一的用户ID,但请勿使用此值向您的后端服务器进行身份验证。
为什么这样?为什么我们不能使用getUid()对您的后端服务器进行身份验证?
最佳答案
uid是用户的唯一标识符。因此,虽然它可以识别用户,但不会对他们进行身份验证。
一个简单的推论是,我的堆栈溢出ID为209103。知道了这一点,就可以识别出我。但是要向Stack Overflow证明您是Frank Van Puffelen,需要您知道我的证书。
用户的ID通常会在界面中公开。例如,如果单击我的个人资料,您将看到我的ID。这对于识别我很有必要。如果您还使用相同的ID进行身份验证,则曾经看过您个人资料的每个人都可以在网站上冒充您。关于安全性,这不是一个好主意。
关于firebase-authentication - 我们为什么不能在Firebase身份验证中使用getUid()与您的后端服务器进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37964425/