我正在使用Firebase-Auth在我用PHP编写的网络应用上授权用户。授权本身是使用Javascript进行的,它是在Ajax-Request上执行的,用于验证用户是否已登录。
要在我已实施Firebase-PHP的服务器上使用Firebase-Admin。
在每个AJX-Request上,我现在都获得登录的用户ID和ID令牌,我想在PHP中验证它,就像在文档中写了here一样。
验证本身运行正常。如果令牌存在,我得到一个" IDToken" -Object。但是,如何再次从该对象中获取userID以验证该令牌对于该用户是否正确呢?
$idTokenString = '...';
try {
$verifiedIdToken = $firebase->getAuth()->verifyIdToken($idTokenString);
// This is the Token-Object where I cant't find the uid-get-Function
} catch (InvalidIdToken $e) {
echo $e->getMessage();
}
我无法在文档或我搜索的类中找到方法。
答案 0 :(得分:1)
图书馆的维护者 - 文档确实遗漏了这些信息,但它现在已经包含在内并且整个页面都已经过大修:
https://firebase-php.readthedocs.io/en/latest/authentication.html#verify-a-firebase-id-token
您可以从ID令牌的sub
声明中检索UID:
try {
$verifiedIdToken = $firebase->getAuth()->verifyIdToken($idToken);
} catch (InvalidToken $e) {
echo $e->getMessage();
}
$uid = $verifiedIdToken->getClaim('sub');
$user = $firebase->getAuth()->getUser($uid);