如何与Firebase身份验证一起安全管理我自己的自定义声明

时间:2018-07-08 13:58:27

标签: firebase firebase-authentication jwt google-cloud-firestore express-jwt

我已经使用Firebase Auth来管理我的应用程序上的用户登录,并为他们所属的每个组织的角色和权限自定义声明。

问题是,当用户属于多个组织时,自定义声明超过了Firebase身份验证设置的1,000个字符的长度限制。

对于客户,我可以使用ID令牌进行API调用,并以他/她的声明为响应。但是对于我的网关,这意味着我现在需要在每个用户请求时查询我的数据库。它完全打败了JWT的观点。

如何安全地嵌入自定义声明?

  • 桌面客户端:ReactJS + Firebase SDK
  • API网关:NodeJS上的Express
  • 后端:用户元数据的Firestore

1 个答案:

答案 0 :(得分:0)

通常,自定义声明的键和值很短,因此您不应遇到此限制。短键和值很重要,因为声明是在JWT中编码的,该JWT与每个请求/连接一起发送。

您现在可能会在令牌中存储可读的,有意义的值。我建议使用较短的“代码”作为声明的键/值,类似于JWT的三个字母默认属性。这样可以控制令牌的大小,并且除非确实有很多索偿要求,否则应将您带回限制之内。