javascript - Firebase:自定义声明要求我的用户注销并登录才能生效?
问题描述
分配自定义声明后,客户端中的用户必须先注销并登录,然后声明才会显示在他们的帐户上。我今天花了所有时间试图弄清楚为什么我的声明没有设置,结果用户必须重新登录才能让声明无缘无故地显示我一天中 5 小时的 LOL 撕裂。我可以添加什么来使其刷新用户信息而无需重新登录吗?
解决方案
可以通过调用强制刷新自定义声明currentUser.getIdToken(true)
。
从文档...
将自定义声明传播给客户端
通过 Admin SDK 在用户上修改新声明后,它们会通过 ID 令牌以下列方式传播到客户端上经过身份验证的用户:
- 修改自定义声明后,用户登录或重新验证。结果颁发的 ID 令牌将包含最新的声明。
- 旧令牌过期后,现有用户会话会刷新其 ID 令牌。
- 通过调用强制刷新 ID 令牌
currentUser.getIdToken(true)
。
推荐阅读
- django-rest-framework - 保存(创建,更新)以及来自与用户模型相关的另一个模型的外键值
- c# - 如何随着时间的推移统一增加雾密度
- azure - Azure 逻辑应用“更新工作项时”触发器 (Azure DevOps)
- angular - cdkDragStartDelay 结束后的角拖放事件
- javascript - React - 解析错误:预期对应的 JSX 结束标记
- android - Flutter:如何正确地对“列表”进行 JSON 编码?
- swiftui - Mapbox + SwiftUI:UI 刷新不传播
- java - 检查流的任何元素是否不存在
- django - 我想在 django 3 的网站模板 url 链接中显示主题标题
- sql - Symfony 4 中的 SQL 查询卡住了