我当前正在使用客户端上的Firebase用户身份验证方法在客户端应用程序(基于Cordova的移动应用程序)上使用Firebase:
根据我目前对会话到期的理解和经验:
“ 身份验证会话不会随着Firebase登录而到期。但是ID令牌必须每小时刷新一次,以保持对服务的访问。”
我认为这意味着我应该编写一个每59分钟运行一次并运行firebase方法的后台进程方法:
firebase.auth()。currentUser.getIdToken(true) // true表示根据firebase文档,无论当前令牌过期如何,都强制执行Refresh。
我只是想确保我已经把头缠住了。
我正在处理类似这样的简单事情……这可能可以解决问题:
let firebaseTokenRefresh = setInterval(function(){
console.log('running firebase token refresh...');
// true = forceRefresh
firebase.auth().currentUser.getIdToken(true);
}, 3540000); // 59 minutes firebase token refresh (1 hr expiration)
谢谢。
答案 0 :(得分:0)
不需要主动刷新令牌(这样做太昂贵了)。每当需要ID令牌时,您只需致电user.getIdToken()
。这将返回缓存的未过期令牌,或者如果当前令牌已过期则刷新它。您可以在将经过身份验证的请求发送到服务器时随时调用。
如果您使用的是Firestore或Realtime数据库,它们将在需要时随时为您自动刷新令牌。您可以通过auth.onIdTokenChanged()
监听器监听令牌更新。