我正在创建一个系统,其中React中的客户端将实现Firebase身份验证,因此Firebase将signIn用户,但我有一个带有Express的后端服务器,我需要在我自己的数据库(postgresql)中使用这些用户。我可以在后端使用firebase-admin来验证客户端针对每个请求发送的令牌,并从该令牌中提取用户数据及其uid。这样我就可以用这些信息在我自己的数据库中创建一个用户。
问题是,因为我没有在自己的服务器上处理用户注册,所以我必须在身份验证中间件中添加一个验证。每次用户向服务器发出请求时,后端都会验证令牌(使用firebase-admin),并检查该用户是否已存在于我自己的数据库中,因为如果不存在,则创建该用户。
我想看看是否有其他方法来处理这个问题,因为每个请求不仅要验证令牌,还要查询数据库以查找用户。
发布于 2021-08-08 18:06:28
在后端代码中验证ID令牌几乎是所有Firebase后端服务处理它的方式。他们接收ID令牌,从项目请求公钥,解码令牌,然后验证用户是否有权执行他们正在执行的操作。
但是,您似乎希望在某个共享数据库中为用户创建一条记录,我通常建议您不要这么做,因为这会影响可伸缩性。大多数Firebase后端服务缓存的唯一内容是项目密钥(因为这些密钥需要昂贵的HTTP查找)和最近编码/解码的令牌对。但每台服务器上都有单独的缓存,因此这与在数据库中拥有您想要的共享状态有很大的不同。
https://stackoverflow.com/questions/68702703
复制相似问题