簡體   English   中英

Firebase REST API - 使用id令牌驗證請求不起作用

[英]Firebase REST API - authenticating request with id token doesn't work

我正在開發一個Unity C#項目,並嘗試使用用戶登錄后返回的id令牌來驗證對Realtime Database的請求,但它表示該請求未經授權。 這是我的登錄代碼( AuthResponse包裝響應正文):

WWWForm form = new WWWForm();
form.AddField("email", email);
form.AddField("password", password);

using (UnityWebRequest www = UnityWebRequest.Post("https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=" + API_KEY, form))
{
    yield return www.SendWebRequest();

    if (www.isNetworkError || www.isHttpError)
    {
        Debug.Log($"Login failed: {www.error}");
        callback(false);
    }
    else
    {
        AuthResponse data = www.downloadHandler.text.FromJson<AuthResponse>();
        ID_TOKEN = data.idToken;
    }
}

我的閱讀要求:

string url = $"{DATABASE_URL}{path}.json";
if (auth) url += $"?auth={ID_TOKEN}";
using (UnityWebRequest www = UnityWebRequest.Get(url))
{
    yield return www.SendWebRequest();

    if (www.isNetworkError || www.isHttpError)
    {
        Debug.Log($"Read failed: {www.error}");
    }
}

我的數據庫有公共規則,一切都沒有auth參數。 我錯過了什么?

編輯:這是令牌響應:

{
  "kind": "identitytoolkit#SignInWithPasswordResponse",
  "localId": <LOCAL_ID>,
  "email": <EMAIL>,
  "displayName": "",
  "idToken": <ID_TOKEN>,
  "registered": true
}

這是完整的讀取請求URL: https://<PROJECT_ID>.firebaseio.com/testing/flatString.json?auth=<ID_TOKEN>

而不是使用自己的httppost使用Firebase Unity SDK

在使用Firebase身份驗證之前,您需要:

注冊Unity項目並將其配置為使用Firebase。

如果您的Unity項目已使用Firebase,那么它已經為Firebase注冊和配置。

如果您沒有Unity項目,可以下載示例應用程序。

將Firebase Unity SDK(特別是FirebaseAuth.unitypackage)添加到Unity項目中。

暫無
暫無

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

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