【问题标题】:What is the reason to save Firebase authVerificationID?保存 Firebase auth 验证 ID 的原因是什么?
【发布时间】:2020-06-29 19:32:04
【问题描述】:

当用户首次登录或注册用户并使用phone auth 时,它会说:

保存验证 ID 并在您的应用加载时恢复它。通过做 因此,如果您的 应用程序在用户完成登录流程之前终止(对于 例如,在切换到 SMS 应用时)。

我不确定保存它的目的是什么。

0- 用户打开应用程序并在登录屏幕上

1- 用户添加他们的电话号码(如下)

2- 回调收到authVerificationID

3- 在用户被带到 SMS 屏幕之前,应用程序以某种方式终止

4- 当用户再次打开应用程序时,因为他们还没有登录,他们又回到了登录屏幕。当他们再次输入他们的电话号码时,他们会收到一个全新的authVerificationID 或同一个(我不确定),然后他们会被带到 SMS 屏幕。无论哪种方式都是有效的,都会将它们带到 SMS 屏幕。

无论如何保存authVerificationID 会做什么,如果应用程序被终止,他们必须再次添加他们的电话号码,因为他们会回到登录屏幕?

如果答案是“c如果 authVerificationID 已保存,然后将它们带到 SMS 屏幕而不是登录屏幕”,那么这就是糟糕的用户体验。用户可能会在一个小时后回来,当他们第一次打开应用程序时,他们会看到 SMS 屏幕并感到困惑。

PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber, uiDelegate: nil) { (verificationID, error) in

    guard let verificationID = verificationID else { return }

    UserDefaults.standard.set(verificationID, forKey: "authVerificationID") // how does this help me?

    // A. take user to sms view controller
    // B. use authVerificationID && verificationCode for sms sign-in
}

【问题讨论】:

  • 答案就是你所说的——如果用户在身份验证流程的中间离开你的应用程序,你可以立即将他们带回 SMS 屏幕。一旦用户离开您的应用程序,您无法保证该应用程序是否不会终止。这完全取决于操作系统,因此您的用户可能最终会陷入无法完成注册的循环(尽管不太可能)。至于糟糕的用户体验评论 - 这是非常主观的,而且非常依赖时间。
  • @NewDev 感谢您的帮助。如果您将此添加为答案,我将接受它。你是关于我的例子是主观的。如果他们马上回来,那就把他们带到短信屏幕上。如果他们稍后回来,那么我认为不会。为了方便起见,如果应用程序终止并且他们已经登录,我宁愿将他们带到登录屏幕。主观的????
  • 你可以,但他们可能陷入无休止的循环

标签: ios swift firebase-authentication


【解决方案1】:

答案与您所说的差不多 - 如果用户在身份验证流程中间离开您的应用,您可以从他们离开的地方恢复登录流程 - 即 SMS 验证步骤。

一旦用户离开您的应用,您无法保证您的应用不会被终止。这完全取决于操作系统。因此,您的用户可能会陷入无法完成注册的循环(尽管这种情况不太可能发生)。

至于糟糕的用户体验评论 - 这是非常主观的(并且取决于您的设计),并且还取决于时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多