I want to implement the server authentication method described here in paragraph 1
- 使用Firebase应用密钥:所有身份验证方法都可以接受Firebase应用密钥而非JWT令牌。这将授予服务器对整个Firebase数据库的完全读写权限。除非通过App Dashboard撤销,否则此访问权限永不过期。
醇>
我需要指导如何做到这一点。我不想使用任何auth
变量,因为我不会通过一些单一的静态密钥对用户进行身份验证,而是我的服务器。
那么我的安全规则是什么样的?
这是我到目前为止所拥有的。
安全rules.json{
"rules": {
".read": true,
".write": "secret == 'mykey'"
}
}
我将如何在服务器端HTTP请求中实现此功能?我是否会创建一个名为secret
的标头,其值为mykey
,如下所示:
{"secret": "mykey"}
答案 0 :(得分:5)
要在HTTP请求中使用密码,请将其传递给URL的auth参数。 E.g。
WsdlTestCaseRunner
使用您的密钥对Firebase进行身份验证时,生成的会话将以管理员身份运行。它具有对整个Firebase数据库的完全读/写访问权限,就像访问Firebase信息中心时一样。因此,您无需在安全规则中授予任何权限。
如果希望能够检测到服务器,则应使用自定义令牌而不是秘密。创建自定义标记时,您可以准确确定curl 'https://yours.firebaseio.com/.json?auth=<your_secret>'
变量的内容。 E.g。
auth
现在,您可以在安全规则中检查该特定的uid:
{
"uid": "myserver"
}
您可以使用此jsfiddle制作自定义令牌:http://jsfiddle.net/firebase/XDXu5/
答案 1 :(得分:0)
不推荐使用Firebase密钥。所以我建议你不要使用它。