ios,swift2020. 3. 30. 11:04

[ios]swift firebase auth password update 방법

 

firebase password 업데이트 할 경우가 필요하다..

 

// 사용자 비밀번호 설정하기

    private func loadFirebaseUpdatePassword(password : String)

    {

        Auth.auth().currentUser?.updatePassword(to: password, completion: { (error) in

            guard error == nil else

            {

                if let errorCode : AuthErrorCode = AuthErrorCode(rawValue: error!._code)

                {

                    print("-> error -> \(error?.localizedDescription ?? "") -> code -> \(errorCode.rawValue)")

                                           

                    switch errorCode.rawValue

                    {

                    case AuthErrorCode.weakPassword.rawValue:

                        // 너무 안전성이 낮은 비밀번호를 설정하려고 했음을 나타냅니다. NSError.userInfo 사전 객체 내의 NSLocalizedFailureReasonErrorKey 필드에 사용자에게 표시할 수 있는 자세한 설명이 있습니다.

                        self.setAlert(title: "error", msg: "이메일 안정성이 낮습니다.")

                        return

                    case AuthErrorCode.requiresRecentLogin.rawValue:

                        // 사용자의 비밀번호를 변경하는 것은 보안에 민감한 작업이므로, 사용자가 최근 로그인한 적이 있어야 진행할 수 있습니다. 이 오류는 사용자가 최근에 로그인하지 않았음을 나타냅니다. 해결하려면 FIRUser에 reauthenticateWithCredential:completion:을 호출하여 사용자를 재인증하세요.

                        self.setAlert(title: "error", msg: "재인증 해야 합니다.")

                        return

                    case AuthErrorCode.operationNotAllowed.rawValue:

                        // 관리자가 지정 ID 제공업체의 로그인을 사용 중지했음을 나타냅니다.

                        self.setAlert(title: "error", msg: "관리자가 지정 ID 제공업체의 로그인을 사용 중지했습니다.")

                        return

                    default:

                        self.setAlert(title: "error", msg: "error -> \(error?.localizedDescription ?? "") -> code -> \(errorCode.rawValue)")

                        return

                    }

                }

                return

            }

        })

        

        self.setAlert(title: "확인", msg: "새로운 비밀번호로 변경 완료되었습니다.")

    }

Posted by thdeodls85