Firebase自定义令牌php服务器生成错误

时间:2016-12-10 08:44:32

标签: php curl firebase jwt firebase-authentication

我已经安装了firebase推荐的用于php自定义令牌的软件包,可在此处找到https://firebase.google.com/docs/auth/admin/create-custom-tokens,标题为使用第三方JWT库创建自定义令牌

我已经安装了 php-jwt 。 然后,我创建了一个找到here的服务帐户,并在 / apis / credentials 中获得了类似的详细信息,如下所示。

$theCreatedToken

然后我使用顶部链接所示的格式生成令牌。

然而,当我把 $url = 'https://localhost-42d67.firebaseio.com/Devices.json?auth=' .$theCreatedToken; $arr = array("success" =>array("iPhone"=>500)); $data_string = json_encode($arr); $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); echo $result = curl_exec($ch); 放在这个卷曲中时......

?auth=' .$theCreatedToken;

我收到此错误 的 { “error”:“预计会出现ID令牌,但会获得自定义令牌。” }

如果我删除{{1}}它可以正常工作。 我究竟做错了什么?我对此进行了广泛的搜索,但没有答案。 我希望有人能够提供帮助。 最好

1 个答案:

答案 0 :(得分:0)

这非常令人困惑,但我通过使用此库以及在Firebase设置中生成的服务帐户JSON来实现它。

https://github.com/kreait/firebase-php

我还编写了这个库,使其适用于Guzzle 5和PHP 5.6

https://github.com/luqmanrom/firebase-php

显然,它在Authorization标头中使用Bearer标记,而不是在查询字符串中传递auth标记。该令牌是从Google OAuth2服务器获取的。

希望它有所帮助