Firebase 3.0 令牌:[错误:Firebase Auth ID 令牌没有“kid”声明]

2023-11-22

我目前正在使用 firebase 3.0 开发一个 node.js 服务,该服务由使用 firebase 2.4 的 Web 应用程序调用。

我正在发送当前用户Firebase ID 令牌 (Auth.$getAuth().token)在我的标头调用中并尝试使用以下命令验证令牌

var idToken = req.headers["x-access-token"];
auth.verifyIdToken(idToken).then(function(decodedToken) {
    var uid = decodedToken.sub;
    console.log(decodedToken);
}, function(error){
    console.log(error);
});

但我得到:

[Error: Firebase Auth ID token has no "kid" claim]

获取身份验证():

enter image description here


UPDATE

我刚刚测试了在服务器端生成和验证令牌,我遇到了同样的问题。

var auth = firebase.auth();
var token = auth.createCustomToken(userId, {"premium_account": true});
console.log(token);
auth.verifyIdToken(token).then(function(decodedToken) {
     console.log(decodedToken);
}, function(error){
     console.log(error);
});

有什么建议么?


更新2:[解决方案]

我的问题是,使用 AngularFire 2.X.X 生成的令牌与我的服务器中运行的 Firebase 3.X.X 不兼容。因此,在深入研究了人们在这里和中写下的一些想法之后这个谷歌小组主题解决方法是使用jsonwebtoken如下:

var jwt = require('jsonwebtoken');
jwt.verify(idToken, fbKey, function(err, decoded) {
   if (!err){ console.log(decoded); }
});

您可以找到fbKey访问新的 firebase 控制台并进入设置 -> 项目设置 -> 数据库.


该文档指出 Firebase ID 令牌与自定义令牌不同,并且 verifyIdToken() 不适用于验证使用generateCustomToken() 生成的令牌。

旧式自定义令牌似乎仍然有效(使用数据库密钥而不是服务帐户私钥进行签名)。您可以使用 firebase-token-generator.js 和/或 jsonwebtoken.js 自行生成和验证这些。

从 Firebase 项目 > 设置 > 数据库 > 机密复制

使用旧版 Firebase 创建自定义数据库身份验证令牌 令牌生成器。任何时候都必须至少存在一个秘密。

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

Firebase 3.0 令牌:[错误:Firebase Auth ID 令牌没有“kid”声明] 的相关文章

随机推荐

  • OnClientClick 中的服务器标记

    以下给出了 服务器标记格式不正确 的错误
  • 调试揭示模块模式:函数在调用之前不在范围内?

    如果我在 Chrome 开发者工具中运行此代码 var test function var publicFunction privateFunction1 privateFunction2 privateFunction1 function
  • 使用 Unicode 补充多语言平面符号创建网络字体

    我对传统纸牌游戏进行了在线概念验证 为了避免实际绘制卡片的图片 我使用了对应的Unicode字符 例如 U 1F0A1 虽然这在现代 Linux 桌面上效果很好 其中DejaVuSans 用于显示这些字符 其他操作系统 例如 Windows
  • 如何使用 Android 12 宣布的新 Material You 颜色

    Google 宣布Android 12 的新颜色个性化 采用 Material You 设计 我们如何使用应用程序中的这些个性化颜色 首先 我想知道如何将它与 Jetpack Compose UI 一起使用 更新 2021 年 10 月 2
  • PHP转发数据帖子

    我尝试在不使用 cURL 的情况下将数据从一个页面转发到另一页面 这可能吗 目前我已经尝试过 header HTTP 1 1 307 Temporary Redirect header Location new location php 这
  • 将指针编组到字符串数组

    我在整理指向字符串数组的指针时遇到一些问题 它看起来像这样无害 typedef struct char listOfStrings 100 UnmanagedStruct 这实际上嵌入到另一个结构中 如下所示 typedef struct
  • 迭代 Ibatis 中的对象列表

    我有一个对象列表 我想在其中迭代和访问 ibatis sql 中的特定字段 Ex public Class Student String id String name 我将传递一个学生对象列表 List Student 作为参数并迭代访问每
  • 在活动布局中使用 Admob 时的白色状态栏

    我正在使用 CoordinatorLayout 和relativelayout 在底部显示广告 但我得到的是白色状态栏 当我删除相对布局和 adview 时 一切正常 当我将 CoordinatorLayout 包裹在relativelay
  • 在 JavaScript 函数中使用三元运算符

    我是 Javascript 新手 正在努力解决这些三元运算符的问题 我有这个小代码段 const x MSys inShip ship launch if x send command x 虽然这工作效率足够高 但我很好奇是否可以在函数调用
  • 画布扭曲绘图。如何获得设置尺寸和样式尺寸之间的比例因子?

    我有这个画布
  • 在Python中转义html?

    我有一个 img src string but string可能包含 我该怎么做才能逃脱它 Example string test jpg img src test 不起作用 在Python 3 2中一个新的html引入了模块 该模块用于从
  • n 位整数的平方与两个 n 位整数的乘法

    免责声明 家庭作业问题 我正在寻找提示 F Lake 教授告诉他的班级 对 n 位整数进行平方比对两个 n 位整数进行乘法渐近更快 他们应该相信他吗 我相信通过移位 加法将两个 n 位整数相乘是一个 O n 操作 但我不明白为什么对一个 n
  • 使用 CSS 和 IE 旋转文本

    我需要用 CSS 旋转文本 我有以下样式规则 但它们似乎不适用于 Internet Explorer footer descr span moz transform rotate 20deg Firefox o transform rota
  • matplotlib:以 None 作为值绘制 numpy 数组

    我有一个看起来像这样的数组 k numpy array 1 0 001 1 1 0 002 None None 1 2 0 003 0 99 0 004 我想绘制不是的值 None None 并保留数组值的索引 也就是说 只要有间隙 我就想
  • Go中如何实现策略模式?

    这是我试图解决的一般问题 一组包从一个源收集数据并将其发送到多个通道 第二组包从多个通道收集数据并将其写入一个源 这组包需要转换多种格式的数据 这似乎是策略模式的完美案例 但我不确定如何最好地使其在 Go 中发挥作用 一般来说 不要迷失在构
  • 如何在 Jenkinsfile 中获取 shell 脚本的输出?

    在 Jenkinsfile Groovy 脚本阶段 假设我想发出一个 linux 命令来输出字符串的行和列 并且想要获取某一行的输出中的第 n 列 此类命令的一个示例是 ls al 那我这样做对吗 stage Get dir size sh
  • 如何使用 CSS 将图像大小调整为其自身的百分比?

    我正在尝试使用图像本身的百分比来调整图像的大小 例如 我只想将图像大小调整为 50 将图像缩小一半 但申请width 50 会将图像大小调整为容器元素 可能是父元素 的 50 例如 问题是 我可以在不使用 JavaScript 或服务器端的
  • 如何使用 micrometer-brave 在 spring-cloud-gateway 中获取trace-id

    我想在 Spring Cloud Gateway 中的每个请求的日志中显示traceId 然而 traceId和spanId只是空的 日志配置如下 logging pattern level 5p TRACE ID X traceId SP
  • ServiceStack.Redis:无法连接:sPort:0

    有时 并非总是 我得到 无法连接 sPort 0 使用 ServiceStack Redis 时尝试从 Redis 获取值时出错 有谁知道这可能意味着什么 我正在使用 PooledRedisClientManager 来获取客户端 我相信你
  • Firebase 3.0 令牌:[错误:Firebase Auth ID 令牌没有“kid”声明]

    我目前正在使用 firebase 3 0 开发一个 node js 服务 该服务由使用 firebase 2 4 的 Web 应用程序调用 我正在发送当前用户Firebase ID 令牌 Auth getAuth token 在我的标头调用