在Rails中生成Firebase验证令牌

时间:2014-08-20 21:16:10

标签: ruby-on-rails ruby-on-rails-4 firebase firebase-security

我正在尝试为我的Firebase设置一些简单的安全规则(基本上,任何授权用户都可以读/写),我正在使用一个使用Devise进行用户身份验证的Rails应用程序。但是,我无法理解生成令牌的过程如何工作。

我在这里找到了Ruby宝石:

https://github.com/firebase/firebase-token-generator-ruby

但是,我不确定我应该把这段Ruby代码放在哪里:

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小时后过期。这是否意味着此令牌生成器将为每个具有过期令牌的客户端自动生成新令牌?

由于

1 个答案:

答案 0 :(得分:2)

如果客户需要直接从Firebase读取/写入,则需要先将该令牌授权给Firebase,因此在您处理用户身份验证/初始化的任何地方生成令牌可能是个好主意

正如您所提到的,默认会话长度为24小时,因此之后他们将需要一个新令牌。您可以使用第二个选项参数指定不同的到期时间,并使用:expires方法的create_token密钥,如任何未来日期的自述文件中所述。这样你可以将其设置为将来30天,或者你的正常会话长度,或者你可以创建一个返回有效令牌的端点,并在前端优雅地处理到期。

如果ruby服务器是唯一访问Firebase的东西,那么事情会更容易一些 - 你可以创建一次服务器令牌并允许它对整个Firebase进行读/写访问