簡體   English   中英

具有身份驗證查詢參數的FireBase Rest無法正常工作

[英]FireBase Rest with auth query param not working

   // INIT FIREBASE
    FirebaseOptions options = new FirebaseOptions.Builder()
          .setServiceAccount(new FileInputStream("C:\\path\\testcustom-dff2147d3b14.json"))
          .setDatabaseUrl("https://testcustom-a1a4d.firebaseio.com/")
          .build();
        FirebaseApp.initializeApp(options);
        isFireBaseInit = true;

       // GENERATE TOKEN
        String uid = "USER ID SOME RANDOM";
        HashMap<String, Object> additionalClaims = new HashMap<String, Object>();
        String token = FirebaseAuth.getInstance().createCustomToken(uid, additionalClaims);

如果我嘗試使用Rest API獲取數據,則不是從瀏覽器

https://testcustom-a1a4d.firebaseio.com/1719126/1719130/1719121.json?auth=JAVA代碼中的代幣生成器

我收到以下錯誤:

{
  "error" : "Missing claim 'kid' in auth header."
}

我究竟做錯了什么?

自定義令牌是否不適用於rest api。 我是否需要使用firebase鏈接 ,如果是,如何在其中添加其他聲明?

PS:我正在使用的Firebase SDK版本

com.google.firebase firebase-server-sdk 3.0.1

編輯:FIREBASE文檔中存在不一致


FIREBASE 指南文檔說明

參數可以是您的Firebase應用程序的機密,也可以是身份驗證令牌,如“ Firebase項目中的用戶”中所述

描述的身份驗證類型為https://firebase.google.com/docs/auth/users#auth_tokens
注意:那里存在自定義令牌


FIREBASE 參考文檔說明

該參數可以是Firebase應用程序的機密,也可以是身份驗證令牌。 有關詳細信息,請參見REST身份驗證文檔


因此,指南和參考的討論方式有所不同。

請幫忙

來自Firebase支持團隊

是的,使用FirebaseAuth.getInstance()。createCustomToken(uid,extraClaims)創建自定義令牌不適用於REST API。 這些令牌旨在由具有signInWithCustomToken(token)的客戶端SDK使用。 請注意,由於新Firebase(舊版Firebase支持)中安全模型的更改,目前不支持“客戶端到數據庫” REST請求。

如您所指出的,您需要單擊此鏈接才能發出經過身份驗證的REST請求。 您應該使用access_token參數,傳遞從服務帳戶私鑰派生的令牌。 假設您使用服務帳戶時的情況是“服務器到數據庫”。

要使用REST添加自定義聲明,應使用auth_variable_override參數。 看這里。 您的請求現在應該看起來像這樣,並帶有附加的聲明:{“ uid”:“ 6LiF16Dm0hNB9XO61UR1KM5Jeun2”}

$ curl“ https://test-de98f.firebaseio.com/test.json?access_token=&auth_variable_override =%7B%22uid%22%3A%226LiF16Dm0hNB9XO61UR1KM5Jeun2%22%7D” {“ 1213314”:{“ alanisawesome”:“ Alan圖靈“}}

我確實知道您所指出的文檔有待改進,並將其提交給我們的文檔團隊,以便可以對其進行優先排序。 不過,目前我無法分享任何時間表。

希望這可以幫助。 如有其他問題或疑慮,請隨時回應。

暫無
暫無

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

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