当前位置: 首页 > 知识库问答 >
问题:

需要Firebase重新身份验证

鲁华灿
2023-03-14

我们正在开发一个iOS应用程序,它使用谷歌来验证firebase。根据https://www . Firebase . com/docs/IOs/guide/user-auth . html # section-log in Firebase说,auth令牌每24小时过期一次。我们想知道以下场景是否是我们需要考虑的:

  1. 用户通过Google和Firebase进行身份验证
  2. 我们的应用程序将获得一个24小时后到期的Firebase身份验证令牌
  3. 用户关闭我们的iOS应用程序
  4. 在Firebase身份验证令牌到期前1分钟,用户重新打开应用程序
  5. 一分钟后,我们向Firebase提出请求。身份验证令牌已过期

似乎我们必须通过观察每个 https://www.firebase.com/docs/ios/guide/user-auth.html#section-monitoring-authentication 的身份验证更改来重新使用 Firebase 进行身份验证。但是我们是否必须从上面的#5向Firebase重新发出相同的请求?此外,似乎我们可以在取消块中重新进行身份验证:

[ref observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
    NSLog(@"%@", snapshot.value);
} withCancelBlock:^(NSError *error) {
    NSLog(@"%@", error.description);
    // reauthenticate and then re-issue request?
}];

这并不理想,因为我们必须在提出请求的任何地方编写此代码。

处理这种情况的最佳实践是什么?Firebase是否会在身份验证令牌接近到期时自动刷新它?

共有1个答案

姜阳
2023-03-14

显然,问题是关于旧版本的Firebase及其SDK。当前版本的Firebase(3. X)使您更轻松,因为Firebase会记住用户上次登录您的应用的方式。

因此,您应该像往常一样调用< code>FIRApp.configure(),例如在您的< code >应用程序中:didFinishLaunchingWithOptions launch options:然后在应用程序启动时添加一个状态侦听器,例如

FIRAuth.auth()?.addStateDidChangeListener() { (auth, firUser) in 
// do something with firUser, e.g. update UI
}

然后,只要您的用户发生变化,Firebase就会在应用程序启动时自动调用侦听器,并且Firebase会在后台处理令牌,也就是说,您不必处理过期的令牌。(如果您使用自定义身份验证系统,情况可能会更复杂)。

 类似资料:
  • 问题内容: 我收到错误 NOAUTH必需的身份验证 。我的laravel版本是5.3,我正在使用predis 1.1.1连接redis。 在etc / redis / redis.conf中,我有: 在.env文件中 在config / database.php中,我有: 我通过以下方式连接redis: 并像这样使用它: 因此,当我注释掉并将密码发送为null时,它可以工作,但在密码到位后却无法工

  • 我一直很难找到Google Firebase身份验证背后的SLA。根据托管和实时数据库的服务水平协议,Firebase的每月正常运行时间百分比应至少达到99.95%。它是否适用于身份验证服务?

  • 我正在使用fire base制作一个反应原生应用程序,用于使用电子邮件登录im并通过身份验证。但是,有没有办法使用用户名和密码登录?

  • 我遵循了GitHub教程中的所有内容:https://help.github.com/articles/generating-ssh-keys 我在存储库的目录中执行了所有命令。我成功到达教程的末尾,并收到消息:“嗨,用户名!你已成功通过身份验证,但 GitHub 不提供外壳访问。 然而,当我尝试做推送之类的事情时,它仍然要求输入我的用户名和密码。

  • 在本章中,我们将匿名认证用户。 步骤1 - 启用匿名身份验证 这和我们以前的章节是一样的。需要打开Firebase信息中心,点击侧边菜单中的Auth和标签栏内的认证方法,需要启用匿名身份验证。 第2步 - 登录功能 可以使用方法进行此认证。 示例 让我们来看看下面的例子,参考示例代码 -

  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。