REST使用令牌调用Firebase数据库会返回错误"缺少声明' kid'在auth标题中。"

时间:2016-07-12 21:57:15

标签: java rest firebase-realtime-database firebase-authentication okhttp

我尝试对我的Firebase数据库进行REST调用。我已成功使用我的数据库密钥,但我正在尝试使用令牌。当我使用令牌进行休息时,我收到错误:

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

我正在从我的服务器拨打电话,因为其他原因我无法使用服务器SDK,所以我必须使用REST。我对其他解决方案持开放态度,但基本上我希望能够使用数据库规则。我的印象是,如果你使用SECRET,它会覆盖定义的规则。

String uid = "123";
Map<String, Object> auth = new HashMap<String, Object>();
auth.put("uid", uid);

FirebaseOptions options = new FirebaseOptions.Builder()
        .setServiceAccount(new FileInputStream(serviceAccountJson))
        .setDatabaseUrl(myFirebaseAddress)
        .setDatabaseAuthVariableOverride(auth)
        .build();
FirebaseApp.initializeApp(options);

String customToken = FirebaseAuth.getInstance().createCustomToken(uid);

Request request = new Request.Builder()
        .url("myFirebaseAddress"+"/users.json?auth="+customToken)
        .build();

Response response = client.newCall(request).execute();

String responseString = response.body().string();
System.out.println(responseString);

0 个答案:

没有答案