FIRAuthErrorDomain代码= 17014从firebase auth b / c中删除没有重新登录到我的iOS应用程序(swift)时出错?

时间:2017-12-09 04:16:50

标签: swift firebase-authentication

我正在构建一个使用firebase auth(和firestore数据库)但只登录facebook的应用程序。

用户只需使用我的应用程序登录一次,然后当他们继续打开应用程序时我会检查

 if Auth.auth().currentUser != nil
 {


 }

因此,如果已经有登录用户,那么我就不会让他们重新登录。

但是当他们想要从应用程序中删除他们的帐户时,会弹出错误消息:

Error Domain=FIRAuthErrorDomain Code=17014 "This operation is sensitive and requires recent authentication. Log in again before retrying this request." UserInfo={NSLocalizedDescription=This operation is sensitive and requires recent authentication. Log in again before retrying this request., error_name=ERROR_REQUIRES_RECENT_LOGIN}

我真的需要让用户再次登录吗?因为这意味着我必须让他们重新登录Facebook并将其发送回fb的页面,以便他们删除他们的帐户似乎有点过分。有没有我可以回来确认登录的令牌?

这可能是一个单独的问题......但是当我直接从firebase控制台删除用户以便系统中没有用户时,我非常确定来自位于客户端的应用程序

Auth.auth()。currentUser不是nil,仍然包含我删除的用户帐户的uid。不完全确定为什么会这样。

感谢。

1 个答案:

答案 0 :(得分:2)

这是出于安全原因。重新认证是一项敏感操作。与您尝试更新密码时相同(需要输入旧密码),更新电子邮件,更新信用卡,电子商务应用程序的送货地址等。可能不方便,但有必要用户的安全。 对于良好的实践,您应该强制执行此操作。但是,如果您需要从服务器中删除用户,则可以始终使用Admin SDK admin.auth().deleteUser(uid) API:https://firebase.google.com/docs/auth/admin/manage-users#delete_a_user

另外,您需要reload用户或尝试刷新令牌getIDToken以强制它检测用户的删除。