我正在使用Firebase將用戶登錄到我的應用中,但是當我添加管理其帳戶(如更改其電子郵件,密碼等)的功能時。該文件說,如果用戶最近沒有登錄,他們需要重新進行身份驗證,但我的問題是:如何檢查用戶是否最近登錄過?根據文檔錯誤將返回FIRAuthErrorCodeCredentialTooOld
,但我該如何檢查?如何檢查用戶是否需要使用Firebase身份驗證重新進行身份驗證
4
A
回答
0
斯威夫特3 我不得不試圖刪除用戶時,該昨天做。有一件事要注意的是FIRAuthErrorCodeCredentialTooOld
現在FIRAuthErrorCode.errorCodeRequiresRecentLogin
我所做的是觸發UIView
要求登錄的詳細信息,如果該錯誤被拋出。由於我使用的是電子郵件和密碼,這就是我在示例中從用戶處收集的內容。
private func deleteUser() {
//get the current user
guard let currentUser = FIRAuth.auth()?.currentUser else { return }
currentUser.delete { (error) in
if error == nil {
//currentUser is deleted
} else {
//this gets the error code
guard let errorCode = FIRAuthErrorCode(rawValue: error!._code) else { return }
if errorCode == FIRAuthErrorCode.errorCodeRequiresRecentLogin {
//create UIView to get user login information
let loginView = [yourLoginUIViewController]
self.present(loginView, animated: true, completion: nil)
}
}
}
一旦我有登錄信息,我運行此功能重新認證用戶。在我來說,我在上面的代碼運行它loginView
如果登錄成功:
func reauthenticateUserWith(email: String, password: String) {
FIRAuth.auth()?.signIn(withEmail: email, password: password) { (user, error) in
if error == nil {
//display UIView to delete user again
let deleteUserView = deleteUserView()
present(deleteUserView, animated: true, completion: nil)
} else {
//handle error
print(error!.localizedDescription)
}
}
}
的deleteUserView
在我的情況對來自用戶的按鈕調用自來水deleteUser()
。您也可以使用UIAlertController
來代替自定義UIView
,但這取決於您。
希望這會有所幫助。
相關問題
- 1. 需要用戶使用NTLM重新進行身份驗證
- 2. 使用Firebase身份驗證進行身份驗證後檢索Google Access令牌
- 3. 檢查用戶是否使用Cognito進行了身份驗證
- 4. 使用Firebase進行NodeJS身份驗證
- 5. 使用Firebase進行身份驗證
- 6. 如何使用摘要身份驗證手動進行身份驗證?
- 7. Firebase身份驗證
- 8. Firebase身份驗證
- 9. 如何使用Firebase RESTful API對用戶進行身份驗證?
- 10. 用asp.net進行Azure AD身份驗證身份驗證
- 11. 如何使用Oracle身份管理器進行身份驗證?
- 12. EJB:如何檢查用戶進行身份驗證
- 13. 對用戶進行身份驗證
- 14. 如何使用Facebook身份驗證檢索Firebase用戶「userID」?
- 15. 我如何才能讓Google Cloud Endpoints使用Firebase身份驗證(非Google帳戶)進行身份驗證呼叫?
- 16. 如何使用Firebase進行身份驗證以使用Angular2 FINAL?
- 17. python中的Firebase用戶身份驗證
- 18. 用戶導入Firebase身份驗證
- 19. Firebase身份驗證UID是否過期?
- 20. Asp.net身份驗證檢查
- 21. 螳螂用戶身份驗證無法在Dokuwiki中進行身份驗證
- 22. Authlogic - 通過基本HTTP身份驗證進行身份驗證
- 23. ASP.NET應用程序未使用Windows身份驗證進行身份驗證
- 24. Facebook身份驗證令牌未能創建Firebase身份驗證
- 25. 獲取用戶的身份而不進行身份驗證
- 26. 在MySQL中以特定用戶身份進行身份驗證
- 27. 以用戶身份進行管理員身份驗證
- 28. 用戶身份驗證
- 29. 用戶身份驗證
- 30. Django用戶身份驗證