【发布时间】:2021-07-01 20:37:48
【问题描述】:
我的 Node.js 应用使用 Firebase 产品以及在 App Engine 中运行的服务器。 因此,当用户登录时,他应该能够在两个平台上进行身份验证。我为此使用了custom tokens。
在服务器中,我调用了admin.auth().createCustomToken(uid) 并将该令牌发送给客户端。
在客户端,我使用firebase.auth().signInWithCustomToken(token) 并登录。一切都很好。
我还阅读了关于令牌 exp field
自 UNIX 纪元以来令牌过期的时间(以秒为单位)。 ...但是一旦您使用 signInWithCustomToken() 让用户登录,他们将保持登录到设备,直到他们的会话无效或用户退出。
因此,Firebase 会处理令牌刷新和所有操作(如果我错了,请纠正我),我不必担心。此外,Firebase 和我的应用使用相同的密钥(服务帐户密钥)来生成令牌。
自定义令牌是签名的 JWT,其中用于签名的私钥属于 Google 服务帐户。
所以生成的令牌在 firebase 和服务器之间是兼容的。
现在,我陷入困境的是,我需要令牌来向 App Engine 服务器进行身份验证。 firebase.auth().signInWithCustomToken(token) 成功后如何从 firebase 获取最新(未过期)令牌?
我本可以在signInWithCustomToken(token) 中使用token。但这可能会在一小时后过期。所以我想我可以依赖 firebase 身份验证。
谢谢。
【问题讨论】:
标签: javascript firebase firebase-authentication