小编wol*_*239的帖子

如何将Firebase Auth Token从客户端传递到服务器?

我正在使用的网站使用Firebase身份验证,登录的不同用户对他们可以访问的页面拥有不同的权限.

登录的方式是设置类似于这篇文章:

  1. 用户使用两个参数登录 - "id"和"email"
  2. 服务器使用这些来创建自定义"uid",然后使用Firebase Admin SDK创建发送回客户端的自定义令牌.
  3. 客户端使用Javascript Firebase SDK登录 - firebase.auth().signInWithCustomToken()
  4. 现在用户已登录,他们可以点击不同的页面 - 即'/ foo','/ bar'

我遇到的问题是,当他们访问新页面时,我正在尝试将令牌从客户端传递回服务器(几乎与在此Firebase文档中完成的方式相同),验证令牌并检查是否存在有权查看网页.

我正在努力找出最好(也是最安全)的方法.我考虑过以下选项:

  • 用令牌构造一个URL,但我听说这不是一个好习惯,因为令牌暴露,会话劫持变得容易多了.

我一直在尝试在请求标头中传递令牌,但据我所知,当用户点击指向其他页面的链接时(或者如果它在javascript中重定向),您无法添加标头.同样的问题适用于使用POST.

如果用户点击指向其他页面的链接,我该如何安全地将此信息传递到服务器并检查权限?

authentication firebase firebase-authentication

15
推荐指数
1
解决办法
4540
查看次数