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

如何修改Firebase Authentication中_tokenResponse.expiresIn的过期时长?

修改Firebase Auth Token有效期的方法

createUserWithEmailAndPassword 和 signInWithEmailAndPassword 返回的 _tokenResponse.expiresIn 对应的是ID Token的默认有效期(3600秒/1小时),这个值没法直接通过客户端代码修改,要实现更长时长的需求,有两种可行方案:

方案一:使用自定义登录令牌(Custom Token)

如果你有后端服务,可以借助Firebase Admin SDK生成自定义Token,生成时直接指定有效期。比如要设置30天有效期,就把expiresIn参数设为2592000秒(或直接写'30d'),之后客户端用signInWithCustomToken登录,返回的token响应里的expiresIn就会是你设置的时长。

示例后端代码(Node.js):

const admin = require('firebase-admin');

// 替换为目标用户的UID,可添加自定义声明(可选)
admin.auth().createCustomToken('user-uid', {}, { expiresIn: '30d' })
  .then(customToken => {
    // 将customToken返回给客户端用于登录
  })
  .catch(error => {
    console.error('生成自定义Token失败:', error);
  });

方案二:配置Refresh Token长期有效期(推荐)

不修改ID Token有效期,而是延长Refresh Token的会话时长——这样ID Token过期后,客户端SDK会自动用Refresh Token刷新获取新的ID Token,用户无需手动重新登录,安全性也更高(ID Token短期有效,泄露风险更低)。

操作步骤:

  1. 打开Firebase控制台,进入你的项目
  2. 左侧菜单栏选择「Authentication」→「设置」→「会话管理」
  3. 在「会话时长」里选择「长期会话」,设置你需要的时长(比如30天)

注意:ID Token有效期过长会提升泄露风险,更推荐用第二种方案维持长期登录状态。

内容的提问来源于stack exchange,提问作者sudo-zaki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:10:50