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

Firebase Auth:如何使用ID Token实现跨应用匿名用户会话共享?

能否通过Firebase Auth实现匿名用户会话的跨应用共享?

直接使用匿名用户的ID Token跨应用登录是不可行的,原因和可行方案如下:

核心限制

匿名用户是Firebase Auth为单个项目生成的临时身份,其ID Token的受众(aud字段)绑定当前Firebase项目ID,跨项目(不同应用)验证时会因身份标识不匹配被拒绝。此外,Firebase Auth并不支持用匿名用户ID Token完成跨应用登录——相关身份验证方法仅适用于自定义令牌或第三方提供商的身份令牌。

代码问题修正

你提供的代码存在两处问题:

  1. getIdToken()是异步方法,必须添加await关键字:
final idToken = await FirebaseAuth.instance.currentUser!.getIdToken();
  1. Flutter的Firebase Auth SDK中没有signInWithToken方法,对应的身份验证方法为signInWithCustomToken或signInWithCredential,但这些方法也无法直接实现匿名用户跨应用登录。

可行替代方案

如果需要实现跨应用的用户身份共享,建议采用以下方式:

  • 升级匿名用户为永久身份:将匿名用户关联邮箱/密码、Google账号等持久化身份,用户即可在不同应用中通过同一身份登录。
  • 使用自定义令牌(限同项目应用):若两个应用属于同一Firebase项目,可在源应用中基于匿名用户UID生成自定义令牌,在目标应用中调用signInWithCustomToken登录。但此方案仅适用于同一项目下的多应用,跨项目仍不支持匿名身份共享。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:30:47