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
ios,swift2020. 3. 30. 11:00

[ios]swift firebase auth password reset mail 보내는방법

 

비밀번호 찾기를 할경우, 이메일을 보내서 갱신 시켜줘야 한다.. 

 

firebase 에서 기본적으로 제공한다..

 

 private func loadFirebaseSendPasswordReset()

    {

        let email = self.emailTextField.text!

        

        // email 보내기

        Auth.auth().sendPasswordReset(withEmail: email) { (error) in

            if let error = error

            {

                // firebase 등록 된 실패 error code 없다.

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

                {

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

                }

            }

            else

            {

                // success

                self.setAlert(title: "", msg: "메일전송하였습니다. 비밀번호를 변경 부탁드립니다.")

            }

        }

    }

Posted by thdeodls85
ios,swift2020. 3. 30. 10:51

[ios]swift firebase auth email login방법

 

private func loadFireBaseSignIn(email : String , password : String)

    {

        Auth.auth().signIn(withEmail: email, password: password) { authResult, error in

            if let error = error

            {

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

                {

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

                    

                    switch errorCode.rawValue

                    {

                    case AuthErrorCode.invalidEmail.rawValue:

                        self.makeAlert(title: "error", msg: "이메일 양식이 맞지 않습니다.")

                        return

                    case AuthErrorCode.wrongPassword.rawValue:

                        self.makeAlert(title: "error", msg: "페스워드가 틀렸습니다.")

                        return

                    case AuthErrorCode.userNotFound.rawValue:

                        self.makeAlert(title: "error", msg: "회원등록 되지 않았습니다.")

                        return

                    case AuthErrorCode.operationNotAllowed.rawValue:

                        self.makeAlert(title: "error", msg: "error -> operationNotAllowed")

                        return

                    case AuthErrorCode.userDisabled.rawValue:

                        self.makeAlert(title: "error", msg: "error -> userDisabled")

                        return

                    default:

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

                        return

                    }

                }

            }

            else

            {

                //success login

                if let user = authResult?.user

                {

                }

                else

                {

                }

            }

        }

    }

Posted by thdeodls85
ios,swift2020. 3. 30. 10:49

[ios]swift fireabse auth email 회원가입 방법

 

private func loadFireBaseCreateUser(email : String , password : String)

    {

        Auth.auth().createUser(withEmail: email, password:password) { (authResult, error) in

             if let error = error

             {  

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

                {

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

 

                   switch errorCode.rawValue

                   {

                   case AuthErrorCode.invalidEmail.rawValue:

                        // 이메일 주소의 형식이 잘못되었음을 나타냅니다.

                        self.setAlert(title: "error", msg: "이메일 양식이 맞지 않습니다.")

                        return

                   case AuthErrorCode.emailAlreadyInUse.rawValue:

                        //  로그인 시도에 사용된 이메일 주소가 이미 존재함을 나타냅니다. fetchProvidersForEmail을 호출하여 사용자가 어느 로그인 시스템을 사용했는지 확인하고, 사용자에게 그중 한 가지 방법으로 로그인하라는 메시지를 띄우세요.

                        self.setAlert(title: "error", msg: "이 이메일로 등록 된 유저가 있습니다.")

                        return

                   case AuthErrorCode.operationNotAllowed.rawValue:

                        // 이메일 및 비밀번호 계정의 사용 설정이 되어 있지 않음을 나타냅니다. Firebase 콘솔의 인증 섹션에서 사용 설정을 하세요.

                        self.setAlert(title: "error", msg: "operationNotAllowed")

                        return

                   case AuthErrorCode.weakPassword.rawValue:

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

                        self.setAlert(title: "error", msg: "weakPassword")

                        return

                   default:

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

                       return

                   }

               }

            }

            else

            {

                // success

                if let user = authResult?.user

                {

 

                }

                else

                {

                    self.setAlert(title: "error", msg: "error ->")

                }

            }

        }

    }

Posted by thdeodls85