我正在为应用程序的后端实现登录逻辑,该逻辑使用 Express 和 TypeScript 构建,并利用 Firebase Admin SDK。然而,在探索
auth
实例提供的方法并多次浏览文档之后,我注意到用户身份验证似乎主要通过标准 Firebase SDK 在客户端进行。
这让我对最好的方法感到困惑:
idToken
?我不确定选择哪个选项,特别是关于哪种方法更安全并且符合身份验证最佳实践。
用户身份验证似乎主要通过标准 Firebase SDK 在客户端进行。
是的,这就是它的工作原理。
我是否应该在后端安装常规 Firebase SDK 来处理身份验证,正如我在一些文章中看到的那样?
不,那根本行不通。
或者应该由前端完全处理身份验证,而后端则专注于使用 Firebase Admin SDK 验证从客户端收到的 idToken?
是的,再说一次,这就是它的工作原理。 这种情况在文档中有具体解释:
如果您的 Firebase 客户端应用与自定义后端服务器通信,您可能需要识别该服务器上当前登录的用户。为了安全地执行此操作,请在成功登录后使用 HTTPS 将用户的 ID 令牌发送到您的服务器。然后,在服务器上验证 ID 令牌的完整性和真实性并从中检索 uid。您可以使用以这种方式传输的 uid 来安全地识别服务器上当前登录的用户。