【发布时间】:2015-10-10 05:32:48
【问题描述】:
我们正在开发一个 iOS 应用,该应用使用 Google 向 Firebase 进行身份验证。根据https://www.firebase.com/docs/ios/guide/user-auth.html#section-login Firebase 的说法,身份验证令牌每 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 是否会在身份验证令牌即将到期时自动刷新它?
【问题讨论】:
-
注意:默认为 24 小时,但您可以在 Session Length 下的 Login & Authentication 选项卡下更改此设置
-
没错。但是,无论时间间隔如何,问题是是否会有 google oauth 令牌有效但 firebase 令牌过期的时间点。我们的 30 秒 firebase 超时实验似乎表明我们必须手动刷新 firebase 身份验证令牌
-
您必须手动刷新身份验证令牌。您可以监视.info/authenticated 以检测更改状态——比取消回调更好的答案。
-
我也有同样的问题。每次用户恢复应用程序时,我都会检查身份验证状态,如果已过期则重新验证。但是,有时,用户仍然会因为过期的身份验证问题而被轰炸。
-
@sjm 你如何改变长度,我在控制台中看不到它 - 不确定事情是否改变了?
标签: ios firebase firebase-authentication