Deg*_*oah 9 java android firebase firebase-authentication
我正在使用Firebase电子邮件/密码身份验证.用户成功登录后,我通过以下方式查询访问令牌:
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();
}
}
});
Run Code Online (Sandbox Code Playgroud)
根据Firebase文档,访问令牌在1小时后到期.为了处理我的应用程序中始终存在当前访问令牌的情况,我一直在寻找解决方案,我在firebase文档中发现我必须注册一个Firebase.IdTokenListener来监听
onIdTokenChanged事件
我的问题是:是吗?
onIdTokenChanged事件
如果访问令牌过期,会自动触发?
如果在访问令牌到期后事件未自动触发,那么"手动"查询新的/更新的Access令牌的coorect方法是什么?
"FirebaseAuth.getInstance().getCurrentUser().getIdToken(boolean)"
Run Code Online (Sandbox Code Playgroud)
方法?
我知道,如果我打电话给
mUser.getToken(真)
然后提到的事件被解雇了
IdTokenListener
被触发了.但这不是我正在寻找的.
boj*_*eil 10
onIdTokenChangedID令牌更改时随时触发.如果ID令牌过期,它将不会触发.如果刷新新的ID令牌,新用户登录或现有用户签名,它将触发.
如果需要,Firebase会自动刷新.例如,如果您使用的是实时数据库或Firestore,它们将在到期后自动刷新令牌,因为它们需要持久连接和ID令牌.这将导致该侦听器触发.
getIdToken() 将缓存未到期的令牌,如果您调用它并且它检测到到期,它将自动刷新将触发该侦听器的ID令牌.
BTW,getToken()已被弃用.你应该使用getIdToken.
| 归档时间: |
|
| 查看次数: |
4194 次 |
| 最近记录: |