You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义OIDC Provider对接Firebase:JWT缺失字段排查求助

解决Firebase解析自定义OIDC ID Token报错“Unable to parse the ID Token”的问题

核心问题分析

你的JWT在Header和Payload的格式/字段上不符合Firebase的OIDC ID Token要求,具体问题如下:

1. Header字段错误

  • kid字段不能为null:Firebase需要通过kid(密钥ID)找到对应公钥来验证签名,必须设置为你Laravel OIDC Provider使用的密钥的唯一ID
  • Header不应包含sub字段:sub是用户唯一标识,属于Payload的标准字段,不该出现在Header中

2. Payload字段错误

  • exp和iat必须是整数时间戳:当前这两个字段是浮点数(带小数),Firebase要求必须是Unix时间戳的整数形式(秒数)
  • nonce字段处理不当:如果不需要使用nonce,应该直接移除该字段,而不是设为null
  • 缺少推荐的用户信息字段:虽然不是强制,但Firebase推荐包含email、email_verified等字段,帮助完善用户身份信息

修正后的JWT示例

修正后的Header

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "your-actual-key-id"
}

修正后的Payload

{
  "iss": "https://dev.my.fusestudio.net",
  "sub": "1",
  "aud": "9b7014ad-aca6-466f-be3c-bab9140d3697",
  "exp": 1709153246,
  "iat": 1709152646,
  "jti": "c0e3aabcf7064d795f67fc05d4c6d7b2284bb6ee5d2bf0213e9c7defa1f87e653e03a98fe6fa3448",
  "auth_time": 1709152638,
  "email": "user@your-domain.com",
  "email_verified": true
}

额外验证步骤

  • 确认Laravel OIDC Provider的OIDC发现端点(/.well-known/openid-configuration)能正确返回jwks_uri,且该URI可被Firebase访问
  • 检查Firebase控制台中配置的OIDC Provider的Issuer值,必须和JWT中iss字段完全一致(注意大小写、结尾是否带斜杠等细节)
  • 确保aud字段值为Firebase项目对应的Client ID,或你在OIDC Provider中配置的Client ID

内容的提问来源于stack exchange,提问作者selfsimilar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:07:30