簡體   English   中英

如何將 Firebase Auth 與 PHP 應用程序集成?

[英]How to integrate Firebase Auth with PHP app?

我有一個簡單的 PHP API,用於對使用我的應用程序的用戶進行身份驗證。 我一直在嘗試使用 Firebase Auth,但沒有成功。 按照此處找到的文檔,我來到了一個點:

  • 我在 Firebase 控制台中創建了 Firebase 項目。

  • 我已經創建了一個服務帳戶,我已經下載了包含所需憑據的 Secret .json 文件。

  • 我已將該文件放在我的應用程序的根目錄中。

我使用此代碼與數據庫交互:

    $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/path/to/file.json');

    $firebase = (new Factory)
        ->withServiceAccount($serviceAccount)
        ->createAuth();

轉儲 $firebase 實例時,我得到了這個:

^ Kreait\Firebase\Auth {#78 ▼
  -client: Kreait\Firebase\Auth\ApiClient {#55 ▶}
  -tokenGenerator: Firebase\Auth\Token\Generator {#58 ▶}
  -idTokenVerifier: Kreait\Firebase\Auth\IdTokenVerifier {#77 ▶}
}

這讓我相信連接成功,但是當我嘗試列出所有用戶時

    $firebase->listUsers();

我得到以下

^ Generator {#42 ▼
   this: Kreait\Firebase\Auth {#78 …}
   executing: {▼
     C:\Users\user\Projects\Simple-Api\vendor\kreait\firebase- 
php\src\Firebase\Auth.php:110 {▼
       Kreait\Firebase\Auth->listUsers(int $maxResults = 1000, int $batchSize = 1000): Generator …
       › {
       ›     $pageToken = null;
       ›     $count = 0;
     }
   }
   closed: false
 }

當我嘗試像這樣遍歷所有用戶時:

   foreach ($users as $user) {
         var_dump($user);
     }

我收到這些錯誤:

cURL error 60: SSL certificate prblm: unable to get local issuer certificate
cURL error 77: SSL certificate prblm: unable to get local issuer certificate

臨時修復(不建議用於生產):

  • 轉到 Guzzle Client.php 類
  • 將驗證設置為 false

如果繼續按照文檔進行操作,您會發現

https://firebase-php.readthedocs.io/en/stable/user-management.html#list-users

Auth::listUsers()返回一個生成器,您可以使用foreach()循環或使用iterator_to_array()將其轉換為數組 - 只有在限制結果集時才應使用后者,否則您將遇到性能問題PHP 嘗試將數千條用戶記錄加載到內存中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM