问题标签 [firebase-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
846 浏览

backbone.js - 在 Firebase 中实施“读取”和“写入”安全规则

在我的应用程序中,我想要一个“可以阅读”和一个“可以写”的视图。当应用程序在没有现有参数的情况下启动(“第一次用户”)时,会创建 2 个随机哈希值,连同 firebase 应用程序机密,将它们发布到 PHP FirebaseTokenGenerator 以接收我的令牌。

然后我想这样做:

  • 第一个散列(“读取散列”)表示“匿名用户”条目
  • 第二个散列(“写散列”)表示一个“键”,它是用户条目的子条目

看起来像这样:

哈希值可以用作 URL 参数,例如“myapp.com/#read_hash/write_hash”

我想要实现的是:

  • 当用户只有他的 read_hash(只调用“myapp.com/#read_hash”)时,他应该能够看到他第一次输入的所有条目(让应用程序为他创建 write_hash /“key”)。但他不允许修改它们。
  • 当他提供他的 write_hash(调用“myapp.com/#read_hash/write_hash”)时,允许写入 Firebase。

我的安全规则:

我的问题是:如何在没有我的安全规则“.write”阻止写入的情况下第一次存储 write_hash ?

任何其他想法如何实现这一目标?任何架构/不一致?

我正在使用这些库:

  • 带有骨干-firebase.js 的骨干 JS
  • FirebaseTokenGenerator PHP

提前致谢。

0 投票
0 回答
566 浏览

javascript - Firebase createUser 身份验证错误

所以我在firebase简单身份验证方面遇到了最奇怪的问题......

当我访问时localhost/#register,填写表格,然后提交,我SERVER_ERRORauthClient.createUser()回调中得到一个。但是当我刷新页面并再次填写表格时,它可以工作了!

每次我重新启动服务器并尝试注册用户时,都会发生这种情况。

重申一下,我第一次执行它时出现服务器错误,但在我刷新页面后,一切都像魅力一样......这让我认为我错误地包含了 firebase 脚本,并且所有必要的文件都没有直到刷新才被包括在内,但我看不出哪里出错了。

更新:提交表单时出现此错误(出于隐私考虑):

错误来自firebase.js第 51 - 63 行。

Stack - brunch.io 与骨干木偶。基本上它是一个 gruntJS 构建,带有咖啡脚本和一个 commonJS 包装器,用于非常简单的前端模块化。

index.html - 我在其中包含脚本

RegisterView.coffee - 我创建 authClient 并尝试创建一个新的 firebase 注册用户(主干模型被UserList正确添加到集合中,然后与数据库正确同步,唯一的问题是createUser()

更新:我尝试将服务器从生产服务器更改-demo为生产服务器,但没有任何区别。

0 投票
2 回答
1630 浏览

angularjs - 带有firebase auth共享服务的angularjs

晕都,

我想将 angularjs 与 firebase 简单登录(facebook)一起使用。但我不知道如何创建身份验证共享服务。

我想做的是

  • 创建身份验证服务
  • 使用此身份验证服务检查用户是否在每个控制器中登录
  • 控制器将执行$location如果用户登录/未登录

我也是 angularjs 的新手,但我不知道在这种情况下应该使用哪些服务。 service还是factory

如何将以下代码放入角度服务中,然后告诉每个控制器用户是否登录?

这是我的猜测,如果存在,则从控制器中的 so返回user值,然后重定向到登录页面,否则显示带有登录按钮的登录对话框以调用以下代码authServiceauthService.user

让我知道我是否可以这样做,或者有更好的方法吗?

0 投票
1 回答
201 浏览

angularjs - 如果用户登录/退出,firebase 如何告诉 angularjs

这是用户单击登录按钮时的代码片段,目前我成功的是。它将重定向到'page1',如果用户单击浏览器后退按钮到'/'页面也会这样做。

现在的问题。如果用户在 注销page1,假设它会重定向到 '/' 但即使用户单击浏览器后退按钮也不会。那么firebase如何告诉angularjs清除响应并返回'/'页面?

0 投票
1 回答
6629 浏览

php - firebase PHP:创建用户

我有需要从用户那里保存到 firebase 的数据。我的 Firebase 架构就像..

是否可以在 PHP 中创建一个新的 Firebase 用户,以便我可以使用生成的 user_id 来保存数据?

0 投票
2 回答
1134 浏览

angularjs - 如何在单页应用程序中处理 Firebase 身份验证

我正在使用带有 angularjs 的 firebase 简单登录身份验证,我想创建一个单页应用程序。在此之前,我曾尝试使用service,main controller来处理它,但我认为这还不够好,因为每次有路由时我都必须调用 FirebaseAuthClient()。我还尝试将 FirebaseAuthClient() 放在 angularjs .run() 中,它会在应用程序启动时进行初始化。但是当有路由时它不起作用,我认为这是因为没有完整的页面加载。

好的,这就是我想要的,

  • 除了登录页面,每个路由(页面)都需要登录。
  • 全局 FirebaseAuthClient() 检查每条路线,所以我不需要再次调用它。
  • user从 FirebaseAuthClient() 返回的全局变量
0 投票
2 回答
723 浏览

firebase - 通过 auth.id 获取数据的安全规则问题

我在正确设置安全规则时遇到问题,特别是阅读帖子数据。

数据层次结构如下:

我的规则是:

我知道“auth.id”是 6,因为它为我的用户信息正确地提取了规则。如果我更改规则以静态提取数字,它会起作用:

但使用 auth.id 不会。有什么我想念的吗?

0 投票
1 回答
106 浏览

javascript - firebase 安全 API 中的 parent() 方法

我想在 Firebase 安全中设置以下规则。要授权写入,我想确保 auth.user_id 与当前分支父级下名为“user_id”的 RulesDataSnapshot 相同

为此,我尝试编写以下 write_rule:

Firebase 安全 API 有一个关于 parent() 方法的部分。 https://www.firebase.com/docs/security/rulesdatasnapshot/parent.html

如示例所示,我使用了 parent() 方法。但是,我收到一个错误“没有这样的方法'父'”

任何帮助,将不胜感激

0 投票
1 回答
494 浏览

firebase - Firebase set() 回调只显示同步错误,但不显示安全规则错误?

关于Firebase set() 函数,有没有办法检测 set() 是否由于安全规则错误而失败?

示例代码(receives null,表示成功,即使集合实际上由于安全规则而失败):

Firebase 文档说,回调仅在同步失败时才会收到错误,但对于安全规则来说,传递错误也会很有用。这样我就可以自信地告诉用户他们的数据已被保存。

有没有办法做到这一点?我想它对任何带有 onComplete 回调的读/写函数都很有用。

0 投票
1 回答
790 浏览

firebase - firebase 限制读取给单个孩子但不读取给父母

我有一个 Firebase 位置,其中所有应用程序存储的消息都作为子对象。

如果客户知道消息的 id 但不下载整个消息表,我希望他们能够获取每条消息。

这个安全规则是什么样的?

谢谢。