错误:Firebase ID 令牌已过期

2024-02-22

在我的服务器上,我在使用 firebase admin sdk 时看到这些错误.verifyIdToken()

Firebase ID 令牌已过期。从您的客户端应用程序获取新令牌并重试

Firebase ID 令牌具有“kid”声明,该声明与已知的公钥不对应。 ID 令牌很可能已过期,因此请从客户端应用程序获取新令牌,然后重试。看https://firebase.google.com/docs/auth/admin/verify-id-tokens https://firebase.google.com/docs/auth/admin/verify-id-tokens有关如何检索 ID 令牌的详细信息。

在客户端,我在浏览器 服务器之间的每个请求之前执行此操作:

firebase.auth().currentUser.getIdToken()

通过阅读文档,我了解到该函数将获得一个有效的、未过期的令牌,因为后台的 SDK 会根据需要自行刷新。我可以选择传递true使用此函数强制刷新。

为什么会这样getIdToken()函数似乎正在向我的后端发送过期的令牌?

似乎要解决这个问题我的选择是:

  1. Pass in true每次调用 getIdToken() 时强制刷新。这是不必要的昂贵,因为它会在来自浏览器 我的服务器的请求之前增加来自浏览器 firebase 的整个往返网络请求的开销
  2. call getIdToken()我现在的方式 - 在客户端手动解码令牌,检查过期时间,如果过期则调用getIdToken(true)再次强制刷新并将新刷新的令牌发送到我的服务器

第二种是推荐/预期的处理方法吗?这里好像出了什么问题……


令牌通常会在一小时后过期。getIdToken如果令牌过期,将刷新缓存的令牌。确保当您需要将令牌发送到服务器时始终在客户端上调用它。如果您缓存令牌并始终将其发送到后端,那么它会在某个时候过期。

另外,为了以防万一,请确保您的服务器时钟同步。这不太可能,但您的时钟可能由于某种原因不同步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:Firebase ID 令牌已过期 的相关文章

随机推荐

  • 在 Go 中,如何自动将循环索引强制转换为 uint?

    我有一些功能需要uint作为他们的输入 func foo arg uint func bar arg uint func baz arg uint 我有一个循环 其极限都是常数uint values const Low 10 High 20
  • 将图像存储在plist中

    我们如何将图像存储在 plist 文件中 这个plist文件存储在哪里 谁能给我举个例子吗 答案将不胜感激 The UIImage不直接实现 plist 中存储所需的 NSCoder 协议 但是 添加起来相当容易 如下所示 UIImage
  • 如何为 Ruby 应用程序创建 REST API?

    我想知道如何为 Ruby 应用程序提供 REST API 我可以基于 Ruby 的 TCPServer API 编写一些代码 但这似乎有点低级 您认为这会是一个好的解决方案吗 或者您推荐更好的方法 您可以使用Sinatra http www
  • 如何为 classyCountdown.js 插件设置特定的 GMT 结束时间?

    RE http www class pm files jquery classycountdown http www class pm files jquery classycountdown 这个简单的 jquery 倒计时插件完全按照我
  • Flutter 应用程序:IOS 模拟器未连接到 Android Studio

    在flutter开发中我想将iOS模拟器连接到android studio 当我从 android studio 打开 iOS 模拟器时 它会打开 但应用程序不会运行 它给出诸如 没有连接的设备 之类的错误 项目从 Xcode 运行 但从
  • 有没有办法将变量传递到 Meteor 中的模板中?

    我一直在尝试 Meteor 并遇到了一些我无法弄清楚的事情 为了好玩 我尝试制作一台老虎机 我有以下 HTML div class slot wrapper gt slot gt slot gt slot div
  • 在 Android 中更改 Maps V2 的地图标记的 z 索引(z 顺序)

    我的地图上显示了几个标记 这些标记要么彼此靠近 要么甚至彼此重叠 我需要一个特定的标记始终位于顶部 无论我首先还是最后将标记添加到地图中 它通常最终会被放置在某些标记后面 由于某种神秘的原因 谷歌地图确定了这一点 它需要与 Android
  • 意外的令牌导出

    作为一名新的 Angular 菜鸟 我正在尝试将我之前使用的 Angular 2 0 0 beta17 Web 应用程序升级到 Angular 2 3 0 现在我在加载 启动应用程序时遇到问题 这是我的设置 为了解决问题 我暂时复制了 we
  • 如何修复 java.lang.IllegalStateException:无法清除 JavaAgentClassRegister。 Set 方法尚未被调用。?

    我正在使用 JunitRunner 运行使用 PowerMock 和 Mockito 编写的单元测试 使用的 Spring Boot 版本是
  • 如何将数组分成两个子集并保持数组子值的总和尽可能相等

    我这里真的需要一个算法大师 所以问题是我得到了一个像这样的数组 870 23 970 78 110 50 我想把它分开 这样它看起来像这样 first array 970 78 second array 870 23 110 50 那么现在
  • Android 无效负载类型

    新的更新后 我发现操作栏和 LG 设备中可扩展 格式化字符串的兼容性问题 这是我之前的代码 SpannableString s new SpannableString About s setSpan new TypefaceSpan thi
  • 阻止用户调整 ListView 中的列宽?

    我的 Winform 中有一个 ListView 有 4 列 名称 金钱 ID 和级别 问题是当我运行我的应用程序时 我仍然有能力弄乱列宽 并改变它们 我搜索并发现我应该做这样的事情 private void listView1 Colum
  • MySQL 删除表

    我将使用什么 MySQL 语法来删除与它们具有相似模式的多个表 就像是 DROP TABLES FROM Database1 LIKE SubTable 由于准备好的语句支持 DROP TABLE 因此可以通过以下方式完成 SET tabl
  • Matplotlib 文本不会以 xkcd 字体显示

    当将 xkcd 与 matplotpib 一起使用时 没有任何字体以通常的漫画字体显示 有什么改变或者我做错了什么吗 x df Time y df Adjustment fig plt figure ax fig add subplot 1
  • 随机顺序和分页 Elasticsearch

    In 这个问题 https github com elasticsearch elasticsearch issues 1170 issuecomment 4587811是使用可选种子进行排序的功能请求 允许重新创建随机顺序 我需要能够对随
  • 使用 Javascript 替换文本字符串中的某些阿拉伯语单词[重复]

    这个问题在这里已经有答案了 我有一个阿拉伯语文本字符串 我想将一些单词加粗并在单词前添加图标 我用于英文文本的方法是 var wordsToBold Properties How To Use function makeBold input
  • 设置 urllib2.request() 调用的超时

    我需要设置超时urllib2 request 我不使用urllib2 urlopen 因为我正在使用data的参数request 我该如何设置这个 虽然urlopen确实接受data参数为POST 你可以打电话urlopen on a Re
  • 使用 Snap.svg 循环播放动画

    背景 我使用 Snap svg 渲染一个圆 然后在悬停时为其半径设置动画 我已经用下面的代码处理了该部分 Problem 我试图获得一次循环 脉冲 效果circleRadar悬停在上面 这将涉及在初始r和新的r70 虽然文档提到了 snap
  • 如何检查系统是否支持“单调时钟”?

    我需要在代码中处理超时场景并想使用clock gettime CLOCK MONOTONIC 如果系统支持单调时钟 ifdef CLOCK MONOTONIC clock gettime CLOCK MONOTONIC spec else
  • 错误:Firebase ID 令牌已过期

    在我的服务器上 我在使用 firebase admin sdk 时看到这些错误 verifyIdToken Firebase ID 令牌已过期 从您的客户端应用程序获取新令牌并重试 Firebase ID 令牌具有 kid 声明 该声明与已