小编And*_*hou的帖子

Firebase 身份验证 UI 如何处理重新身份验证?

我正在为我的 Swift iOS 应用程序使用 Firebase Auth。Google 建议使用 Firebase Auth UI 作为“插入式”身份验证系统,但它仅处理初始登录。我现在正致力于允许用户更改配置文件,例如电子邮件和密码。

进行这些更改的文档在多个地方提到某些更改要求用户最近登录(请参阅https://firebase.google.com/docs/auth/ios/manage-users#get_the_currently_signed-in_user):

某些安全敏感操作(例如删除帐户、设置主电子邮件地址和更改密码)要求用户最近登录。如果您执行这些操作之一,而用户登录时间过长,则操作因 FIRAuthErrorCodeCredentialTooOld 错误而失败。

首先,FIRAuthErrorCodeCredentialTooOldAPI 中的任何地方似乎都没有错误。

其次,文档建议使用reauthenticate(with:)此代码示例来解决此问题:

let user = FIRAuth.auth()?.currentUser
var credential: FIRAuthCredential

// Prompt the user to re-provide their sign-in credentials

user?.reauthenticate(with: credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,因为我使用了 Firebase Auth UI,所以我没有用于获取用户凭据的自定义 UI。

我目前的想法是,我可以通过在发生此错误时提供用于登录的相同 Firebase 身份验证 UI 来重新进行身份验证。但是,我不知道这是否是执行此操作的认可方式,或者它是否会起作用,或者将来是否会继续起作用。我检查了 Firebase Auth UI 代码库,没有reauthenticate()任何地方可以调用。文档在出现此错误的情况下专门调用此方法做了大量工作,所以我很困惑。

如果我需要构建一个完整的 …

ios firebase swift firebase-authentication firebaseui

6
推荐指数
1
解决办法
1913
查看次数