我在他发送的每个AJX-Request上授权用户。因此我在AJX-Function的开头调用一个函数。这给了我一个带有userID和ID Token的回调:
userID = currentUser.uid;
currentUser.getIdToken().then(function(data) {
token = data;
__callback( userID, token);
});
然后我调用请求并传递ID和令牌。 在服务器端,我检查令牌,它属于哪个用户ID。 这两个ID是否相等,用户是否已登录。
但是,如果用户知道用户ID和令牌,他可以修改两个变量并通过AJX-Call发送它们。然后用户立即登录。
这是验证用户服务器端的最佳方法吗?或者应该怎么做?
答案 0 :(得分:0)
如果用户知道userID和令牌,他可以修改两个vars并通过AJX-Call发送它们。
实际上这是不可能的。要创建ID令牌,您需要使用项目的私钥对其进行签名。由于永远不会通过网络发送,黑客也无法做到这一点。
除非他们当然知道用户的凭据,否则他们可以使用Firebase身份验证API登录/创建此类令牌。你不能做很多事情。