繁体   English   中英

使用 Firebase-PHP 验证 Firebase ID 令牌

[英]Verify Firebase ID Token with Firebase-PHP

我正在使用 Firebase-Auth 在我用 PHP 编码的网络应用上授权用户。 授权本身是用 Javascript 完成的,它在 Ajax 请求上执行以验证用户是否已登录。

为了在服务器上使用 Firebase-Admin,我已经实现了Firebase-PHP

在每个AJX请求我现在就登录的用户ID和ID令牌,这是我想在PHP验证像它被写在这里的文档。

验证本身工作正常。 如果令牌存在,我会得到一个“IDToken”-Object。 但是如何再次从该对象中获取用户 ID 以验证令牌是否适合该用户?

$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();
}

我在文档或我搜索的类中找不到方法。

图书馆的维护者在这里 - 文档确实缺少该信息,但现在包含在内并且整个页面已经过大修:

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'); // lcobucci/jwt:^3.0
// or 
$uid = $verifiedIdToken->claims()->get('sub'); // lcobucci/jwt:^4.0

$user = $firebase->getAuth()->getUser($uid);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM