gpt4 book ai didi

java - firebase 访问 token 是否自动刷新?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:28 26 4
gpt4 key购买 nike

我正在使用 Firebase 电子邮件/密码身份验证。用户成功登录后,我通过以下方式查询访问 token :

FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
mUser.getIdToken(true)
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
public void onComplete(@NonNull Task<GetTokenResult> task) {
if (task.isSuccessful()) {
String idToken = task.getResult().getToken();
// Send token to your backend via HTTPS
// ...
} else {
// Handle error -> task.getException();
}
}
});

根据 Firebase 文档,访问 token 将在 1 小时后过期。为了处理在我的应用程序中始终拥有当前访问 token 的情况,我一直在寻找解决方案,我在 firebase 文档中找到了 to register a Firebase.IdTokenListener去听

onIdTokenChanged event

我的问题是:是

onIdTokenChanged event

如果访问 token 过期会自动触发吗?

如果事件在访问 token 过期后没有自动触发,那么使用“手动”查询新/更新的访问 token 的最佳方法是什么

"FirebaseAuth.getInstance().getCurrentUser().getIdToken(boolean)"

方法?

我知道,如果我调用

mUser.getToken(true)

然后提到的事件被触发,

IdTokenListener

被触发。但这不是我要找的。

最佳答案

onIdTokenChanged 在 ID token 更改时触发。如果 ID token 过期,它不会触发。如果刷新新 ID token 、新用户登录或现有用户注销,它将触发。

如果需要,Firebase 会自动刷新。例如,如果您使用实时数据库或 Firestore,它们将在 token 过期后自动刷新 token ,因为它们需要持久连接和 ID token 。这将导致该监听器触发。

getIdToken() 将缓存未过期的 token ,如果您调用它并且它检测到过期,它将自动刷新将触发该监听器的 ID token 。

顺便说一句,getToken() 已弃用。您应该改用 getIdToken

关于java - firebase 访问 token 是否自动刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49656489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com