我们正在开发一款使用Google进行身份验证的iOS应用。根据{{3}} Firebase称,auth令牌每24小时到期一次。 我们想知道以下情况是否需要考虑:
我们似乎必须通过观察每https://www.firebase.com/docs/ios/guide/user-auth.html#section-login的身份验证更改来重新验证Firebase。但是,我们是否必须从上面的#5向Firebase重新发出相同的请求? 似乎我们可以在cancelBlock中重新验证:
[ref observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
NSLog(@"%@", snapshot.value);
} withCancelBlock:^(NSError *error) {
NSLog(@"%@", error.description);
// reauthenticate and then re-issue request?
}];
这不太理想,因为我们必须在我们发出请求的任何地方编写此代码。
处理此方案的最佳做法是什么? Firebase是否会在到期时自动刷新身份验证令牌?
答案 0 :(得分:0)
显然,问题在于旧版本的Firebase及其SDK。 Firebase(3.X)的当前版本让您更轻松,因为Firebase会记住用户上次登录您应用的方式。
所以你应该打电话
FIRApp.configure()
一如既往在application: didFinishLaunchingWithOptions launchOptions:
中,然后在启动应用时添加状态监听器,如
FIRAuth.auth()?.addStateDidChangeListener() { (auth, firUser) in
// do something with firUser, e.g. update UI
}
随着Firebase的应用程序发生变化,Firebase会在应用程序启动时自动调用侦听器,Firebase会在后台处理这些令牌,即您不必处理过期的令牌。 (如果使用Custom Auth System,可能会更复杂。)