【发布时间】:2016-01-31 13:28:33
【问题描述】:
工具:Firebase 2.3.1
问题类型:为当前处于会话中的用户设置安全规则
认证方法:authWithPassword()
我知道当前用户已在浏览器中登录应用程序。 我设置我的规则是希望用户打开会话后,他们可以访问该浏览器上任何选项卡中的所有房间数据。
但是,如果我尝试在同一浏览器的不同选项卡中获取下面的此 URL..
https://myfirebaseurl.firebaseio.com/rooms.json
..我会回来的
{
"error" : "Permission denied"
}
这很奇怪,因为在我打开应用程序或刷新页面的任何选项卡中,该 URL 在我的程序中都可以正常工作
例如,这不会引发任何错误:
var firebaseRoomsRef = new Firebase("https://myfirebaseurl.firebaseio.com/rooms")//fetch just fine
规则如下:
{
"rules": {
"rooms": {
".read": "root.child('users/'+auth.uid).exists()",
}
}
所以我的主要问题是: 错误只是因为我试图像那样直接调用 URL json 而发生吗?还是我的应用程序做了一些不同的事情来授予它访问消息的权限?
一个附带问题: 当我成功调用 authWithPassword() 时,Firebase 会自动将“auth”作为令牌或 cookie 存储在我的程序中,对吗?
【问题讨论】:
标签: security session firebase token firebase-security