2017-12-20 11 views
0

신입생 firebase 인증 .. 프로필이있는 기본 앱을 만들고 있는데, 사용자의 기본 정보를 편집하기 위해 DisplayNameEmail ...과 같은 사용자 정보를 수정했습니다. 암호를 변경하는 기능을 추가 할 필요는 없지만 먼저 현재 사용자의 암호를 확인하고 변경하기 전에 사용자가 현재 암호를 알고 있어야하는 의 String과 비교할 필요가 없습니다.Firebase 인증 : 현재 사용자의 비밀번호를 얻는 방법?

편집 : 나는 사용자에게 약 부탁 해요 문제는 Facebook에 때 '처럼 해킹이나 그런 걸 줄이기 위해 새로 변경할 수하기 위해 자신의 현재 Password 쓰기 Email 또는 Password 또는 심지어 Name을 변경하려고하면 현재 Password을 묻습니다. Firebase documentation에서

![Example

+1

당신은 당신이 현재 정확히 어떤이 중포 기지와 무슨 상관 – dave

+0

을 시도하고 무엇 당신이 무슨 뜻인지의 예 등을 표시해야? Firebase 인증을 사용하고 있습니까? –

+0

이메일이나 비밀번호 또는 요청한 이름을 변경하려고 할 때 facebook 에서처럼 해킹 등을 줄이기 위해 새 비밀번호로 변경할 수 있도록 사용자에게 현재 비밀번호를 쓰도록 요청합니다. 당신은 현재의 비밀 번호를 알려줍니다. –

답변

2

:.

일부 보안에 민감한 행동-같은 계정을 삭제 기본 이메일 주소를 설정하고 changing a password 사용자가 최근에 서명했다고 -require로

이러한 작업 중 하나를 수행하고 사용자가 너무 오래 전에 로그인하면 작업이 실패하고 FirebaseAuthRecentLoginRequiredException이 표시됩니다. 이 경우 사용자의 새 로그인 자격 증명을 얻고 자격 증명을 전달하여 다시 인증함으로써 사용자를 다시 인증하십시오. 예를 들어 :이 너무 광범위

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

// Get auth credentials from the user for re-authentication. The example below shows 
// email and password credentials but there are multiple possible providers, 
// such as GoogleAuthProvider or FacebookAuthProvider. 
AuthCredential credential = EmailAuthProvider 
    .getCredential("[email protected]", "password1234"); 
// Prompt the user to re-provide their sign-in credentials 
user.reauthenticate(credential) 
    .addOnCompleteListener(new OnCompleteListener<Void>() { 
     @Override 
     public void onComplete(@NonNull Task<Void> task) { 
      Log.d(TAG, "User re-authenticated."); 
     } 
    }); 
+0

그래서 사용자가 암호를 변경하려고 할 때이 메서드는 사용자에게 다시 로그인하도록 요청합니까? 나는 그것을 정말로 얻지 않는다. –

+2

비밀번호를 변경하면 사용자가 최근에 로그인 한 상태 여야합니다. 마지막으로 로그인 한 지 오래되지 않은 경우 Firebase가 예외를 throw합니다. 이 경우 암호를 다시 변경하기 전에 다시 인증해야합니다. –

+2

안녕 타밈, 사용자가 먼저 기존 암호를 입력하도록 요청하는 메커니즘입니다. 재 인증을받습니다. 성공하면, 사용자에게 새 암호를 요청하고'updatePassword' API를 호출하여 사용자 암호를 갱신 할 수 있습니다. 그것은 정확히 당신이 요구하는 것입니다. – bojeil