首页 文章

需要Firebase重新验证

提问于
浏览
13

我们正在开发一款使用Google进行身份验证的iOS应用 . 根据https://www.firebase.com/docs/ios/guide/user-auth.html#section-login Firebase说auth令牌每24小时到期 . 我们想知道以下情况是否需要考虑:

  • 用户通过Google和Firebase进行身份验证

  • 我们的应用获得了一个24小时后到期的Firebase身份验证令牌

  • 用户关闭我们的iOS应用程序

  • 在Firebase身份验证令牌到期前1分钟,用户重新打开该应用

  • 一分钟后,我们向Firebase发出请求 . 身份验证令牌已过期 .

看来我们必须通过观察每个https://www.firebase.com/docs/ios/guide/user-auth.html#section-monitoring-authentication的身份验证更改来重新验证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会在到期时自动刷新身份验证令牌吗?

1 回答

  • 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在后台处理令牌,即您不必处理过期的令牌 . (如果使用Custom Auth System,可能会更复杂) .

相关问题