【发布时间】:2014-08-20 21:16:10
【问题描述】:
我正在尝试为我的 Firebase 设置一些简单的安全规则(本质上,任何授权用户都可以读/写),我将其与使用 Devise 进行用户身份验证的 Rails 应用程序一起使用。但是,我无法理解生成令牌的过程是如何工作的。
我在这里找到了 Ruby gem:
https://github.com/firebase/firebase-token-generator-ruby
但是,我不确定应该将这段 Ruby 代码的 sn-p 放在哪里:
require "firebase_token_generator"
arbitraryAuthPayload = {:auth_data => "foo", :other_auth_data => "bar"}
generator = Firebase::FirebaseTokenGenerator.new("<YOUR_FIREBASE_SECRET>")
token = generator.create_token(arbitraryAuthPayload)
我是否只是将它与 user_id 的变量一起放入初始化程序中?
另外,我看到令牌会在 24 小时后过期。这是否意味着这个令牌生成器会自动为每个带有过期令牌的客户端生成一个新令牌?
谢谢
【问题讨论】:
-
听起来你在问如何构建 ruby 代码。这不完全在你的哲学难题的范围内吗?把它放在你想创建令牌的任何地方。我认为如果不完全了解您的应用程序,我们就不能在这里提供建议。关于到期:更新它们是你的工作;没有自动;在此处查看.info/authenticated and presence management 以获得帮助。
-
嗯,所以如果我使用的是 Devise,那么它应该在每次用户使用 Devise 登录时生成一个令牌,对吗?这是否意味着它应该放在一个设计文件中?
-
客户端是否直接连接到 Firebase?还是通过 ruby 后端进行读/写?
-
其实两者都有。我有一个或两个通过模型启动的写入,但其余的都在客户端。基本上,我只是想确保没有任何使用我的 firebase url 的随机人可以读取/写入数据(因为它直接暴露在视图中),因为这真的会搞砸(而且还有一些敏感信息,比如我的位置数据)正在流式传输)。我知道只能做很多事情来缓解这种情况,但至少只接受来自登录用户的读/写请求(通过设计)可能会有很长的路要走......除非那里有更好的解决方案。
标签: ruby-on-rails ruby-on-rails-4 firebase firebase-security