2016-12-10 1 views
1

PHP 홈 페이지 을 사용하여 사용자 정의 토큰 생성 아래에 https://firebase.google.com/docs/auth/admin/create-custom-tokens이라는 PHP 사용자 지정 토큰에 권장되는 패키지를 설치했습니다.Firebase 커스텀 토큰 PHP 서버 생성 오류

php-jwt을 설치했습니다. 그런 다음 here이라는 서비스 계정을 만들고 /apis/credentials에서 다운로드 한 것과 비슷한 세부 정보를 얻습니다.

"private_key": "-----BEGIN PRIVATE KEY-----veryLongKey---END PRIVATE KEY-----\n", 
"client_email": "[email protected]", 

그런 다음 맨 위에있는 링크로 표시된 형식을 사용하여 토큰을 생성합니다.

그러나 나는

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

내가이 오류 { "오류"를 얻을 ....이 컬의 $theCreatedToken 것을 넣을 때 ".의 ID 토큰을 예상하지만 사용자 정의 토큰을 받았다" }

내가 ?auth=' .$theCreatedToken;을 제거하면 작동합니다. 내가 뭘 잘못하고 있니? 나는 이것을 광범위하게 조사했지만 대답은 없다. 누군가 도와 주길 바랍니다. 최고

+0

나는이 해결책을 따랐지만 똑같은 오류를 일으켰다. [link] (http://stackoverflow.com/questions/37801444/setting-up-firebase-v3-custom-auth-with-php) – Sprep

+0

$ theCreatedToken은 어떻게 얻었습니까? –

+0

$ theCreatedToken이 JWT 라이브러리에서 반환됩니다. – Sprep

답변

0

상당히 혼란 스럽지만이 라이브러리와 서비스 계정을 사용하여 Firebase 설정에서 생성 된 JSON을 사용하여 작업했습니다.

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

나는 또한 목구멍 5, PHP 5.6 분명히

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

와 함께 작동하도록이 라이브러리를 작성, 그것은 인증에서 무기명 토큰이 쿼리에서 인증 토큰을 전달하는 대신 헤더 사용 문자열. 토큰은 Google OAuth2 서버에서 가져옵니다.

도움이 되었기를 바랍니다.

+0

예, 그 광기로 혼란 스럽습니다. 나는 결국 당신과 똑같이 했어. – Sprep

+0

나는 Guzzle 5에서 작동하도록 다시 작성해야한다. 나중에 공용 패키지로 만들 것이다. 도움이 될만한 경우 요금을 부탁드립니다. – geckob