如何使用字符串键验证我的firebase?

时间:2018-04-29 05:57:00

标签: firebase-realtime-database firebase-authentication http-post

所以我只想保持简单并设置auth ===“StringKey”进行写入,这样如果密钥匹配,我就可以在数据库中写入。我已经用它模拟的模拟测试了“StringKey”。但是我不知道在HttpPost上输入密钥的位置。

我试过https://fake-project-name.firebaseio.com/datatable1.json?auth=“StringKey” 但我一直得到返回“错误”:“无法解析身份验证令牌。”,我不确定我输入的JSON语法有什么问题。

我尝试添加{“身份验证”:“基本'StringKey'”}但不确定我在为此部分做些什么。

提前感谢您的帮助。

Firebase实时数据库规则:

  

image

2 个答案:

答案 0 :(得分:1)

Firebase数据库REST API的auth参数仅接受JSON Web令牌(JWT)。如果你传入一个随机字符串,它不是一个有效的JWT,所以被拒绝。

如果要正确验证REST请求,则必须按照the documentation on authenticating REST Requests中列出的步骤进行操作。

使用共享密钥允许写入数据库

另一方面,如果您只想查看是否可以实现所谓的共享密钥,允许任何拥有该秘密的人写入数据库,您可以采取不同的方法。

设置安全规则如下:

{
  "rules": {
    "ecbyr2782t73113193193": {
      ".read": true,
      ".write": true
    }
  }
}

根据这些规则,如果某人知道秘密值/ecbyr2782t73113193193,则可以从ecbyr2782t73113193193读取/写入。如果他们不知道该值,则无法从数据库中获取该值。

这被称为共享密钥,因为您必须与带外其他用户共享密码(例如通过电子邮件或FCM)。

请注意,除了此共享密钥之外,我仍建议您对REST请求使用正确的身份验证。

答案 1 :(得分:0)

尝试一下:

fake-project-name.firebaseio.com/datatable1.json?auth= [MY_DATABASE_SECRET]

How to get secret?