我发帖参考这个问题。
我有这个完全相同的问题,但我还没有找到解决方法。
我们创建了一个带有附加声明的自定义令牌,当我们需要对这些声明进行更改时,用户需要注销然后再次登录以使声明受到影响。只要会话处于活动状态,令牌就不会更改。
我们该怎么办?
我尝试了与参考帖子中提到的完全相同的操作,得到了相同的结果。我还尝试手动将声明设置为空,然后用正确的值更新它们,但没有结果
提前致谢!
Firebase ID 令牌是不可变的,大多数 JWT 通常都是不可变的。一旦铸造,您就无法更改。
如果您想更改用户个人资料中的声明,您需要使用这些声明创建一个新令牌。然后可以使用该新令牌代替先前的令牌,即使先前的令牌在其
exp
值之前仍然有效。
如果您已向服务器上的用户帐户添加声明,则可以在客户端上调用
getIdToken(true)
,强制客户端从服务器获取具有最新声明的新令牌。