首页 > 解决方案 > Firebase:自定义声明要求我的用户注销并登录才能生效?

问题描述

分配自定义声明后,客户端中的用户必须先注销并登录,然后声明才会显示在他们的帐户上。我今天花了所有时间试图弄清楚为什么我的声明没有设置,结果用户必须重新登录才能让声明无缘无故地显示我一天中 5 小时的 LOL 撕裂。我可以添加什么来使其刷新用户信息而无需重新登录吗?

标签: javascriptfirebasefirebase-authenticationfirebase-admin

解决方案


可以通过调用强制刷新自定义声明currentUser.getIdToken(true)

从文档...

将自定义声明传播给客户端

通过 Admin SDK 在用户上修改新声明后,它们会通过 ID 令牌以下列方式传播到客户端上经过身份验证的用户:

  • 修改自定义声明后,用户登录或重新验证。结果颁发的 ID 令牌将包含最新的声明。
  • 旧令牌过期后,现有用户会话会刷新其 ID 令牌。
  • 通过调用强制刷新 ID 令牌currentUser.getIdToken(true)

推荐阅读