firebase:admin.auth().updateUser() 导致 auth/user-token-expired

firebase: admin.auth().updateUser() causes auth/user-token-expired

  1. 我成功地使用 phone-number 进行了身份验证。 (我可以检查 firebase.auth.currentUser 我是否已登录。)
  2. 然后我调用我的 firebase 管理路由 admin.auth().updateUser(uid, somevalues) 来设置用户显示名称和电子邮件。
  3. 完成此步骤后,我的用户数据更改了显示名称和电子邮件。(已在 firebase 控制台中检查) 在我的身份验证中,我 运行 firebase.auth().currentUser.reload() 获取更新的用户数据,突然出现错误 auth/user-token-expired 我仅在使用 admin.auth().updateUser(....) 后检查过我的令牌丢失了。如果我不 运行 这个命令,那么我可以毫无问题地执行 firebase.auth().currentUser.reload()。

更新:只有当我在调用 admin.auth().updateUser(....) 时设置电子邮件时,我的应用程序内的令牌才会无效。如果我只更改 displayName 令牌仍然有效。

我不确定这里的确切问题是什么,但是 reload() 将使用刷新令牌,但是刷新令牌会在 "A major account change is detected for the user. This includes events like password or email address updates." 时过期

参见:https://firebase.google.com/docs/auth/admin/manage-sessions

所以当你的刷新令牌过期时(由于'major account change'),你需要重新授权..