firebase 数据规则无法解析身份验证令牌

Posted

技术标签:

【中文标题】firebase 数据规则无法解析身份验证令牌【英文标题】:firebase data-rules Could not parse auth token 【发布时间】:2019-10-12 12:21:27 【问题描述】:

我试过了

https://recipes-fe1ba.firebaseio.com/products.json?auth' + 令牌

在 firebase 规则中,我尝试过

 "products" : 
   ".read": "auth != null",
    ".write": "auth != null"
   

在我发送了实际的 NOT null 令牌后发生了不工作的事件。它抛出 401 并带有以下错误对象。

       "error" : "Could not parse auth token." 

有人可以强调一下吗?

我还需要有关如何在 Firebase 数据规则中读取我自己的查询参数的帮助 例如: 如果我打

https://recipes-fe1ba.firebaseio.com/products.json?mypara1=1234

在数据规则中,类似

".read": "mypara1 != 1235"

目前卡住了,不知道该怎么做。

【问题讨论】:

请限制自己在每个帖子中回答一个问题。我在下面回答了你的第二个问题。 【参考方案1】:
"products" : 
   ".read": "auth != null",
    ".write": "auth != null"
 

从身份验证中删除单个 cotes

【讨论】:

感谢奥雅纳。发布问题时,单引号是错误的。代码没有单引号【参考方案2】:

对于您的第二个问题:您可以将数据传递给安全规则的唯一方法是通过您读取的路径以及通过用户的身份验证令牌。无法像您尝试的那样通过 URL 将自定义参数传递到安全规则中。

典型的方法是将它们传递到路径中。所以像:

https://recipes-fe1ba.firebaseio.com/products/mypara1_1234.json

【讨论】:

谢谢弗兰克。如果我像您建议的 req 那样触发 url,它会在最后附加“.json”。 recipes-fe1ba.firebaseio.com/products.json/mypara1_1234.json 如果我附加它 "error" : "Invalid path: Invalid token in path" 如果我将 url 更改为 recipes-fe1ba.firebaseio.com/products/mypara1_1234.json 它会抛出如下错误 我们在此处添加的路径并没有什么神奇之处,因此它当然也必须存在于您的数据库中。如前所述:无法将额外数据传递到令牌中,因此您必须将其传递到路径中(并确保您的数据库在该路径中有数据)。

以上是关于firebase 数据规则无法解析身份验证令牌的主要内容,如果未能解决你的问题,请参考以下文章

在Firebase安全规则中是否可以验证用户的身份验证令牌?

将 Google 身份验证令牌与 Firebase 一起使用

来自 Graphcool 的 firebase 身份验证令牌

如何使用 Firebase 规则进行身份验证(RESTful)

如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?

通过 laravel API 使用 firebase 令牌身份验证