我对firebase安全性和Web开发有点新意,但我在Rails应用程序的服务器端生成JWT。但是,为了将它们传递给firebase,似乎我必须在使用此Javascript代码的视图中传递令牌(存储在db中的users表中):
var ref = new Firebase('https://mysite.firebaseio.com/');
ref.auth('<%= @user.auth_token %>');
这是你应该如何处理身份验证令牌?我认为它可能会失败,因为auth令牌随后可以从页面源查看给用户。
答案 0 :(得分:2)
Firebase身份验证令牌用于身份,但不用于授权。后者由您的Firebase Security Rules管理,{{3}}将使用当前(以及将来,如果写入)数据状态,结合auth令牌中显示的身份来确定给定的读取或写入操作是允许的。
因此,用户可以查看/访问他们自己的身份验证令牌,但不应该能够查看/访问其他用户的身份验证令牌,因为这样可以允许其他用户(可能是恶意攻击者)冒充用户对应于该身份验证令牌。
答案 1 :(得分:0)
还可以auth token
解释here来查看Firebase REST APIs
。
查询参数auth
值也可用,如果有人跟踪http数据包,就像使用wireshark一样,但我想这就是它的使用方式。 JWT
auth
令牌只是一个字符串。
但是使用Token Generation Libraries可以使用特定的到期时间生成这些JWTs
,默认情况下,到期时间为24小时。
<强>参考强>
默认情况下,身份验证令牌在发布后24小时到期,客户端将在此时自动进行身份验证。我们可以通过更改登录和放大器上的会话长度设置来覆盖它。 Firebase仪表板的Auth选项卡,或通过提供特定的到期日期创建令牌时单独选项卡。有关详细信息,请参阅您正在使用的特定令牌生成器库的文档。
此外,firebase还提供了指定Definite Rules
以访问firebase中数据的方法。See Here
它还提供Data Validation
来保持数据的一致性。 See Here