2017-12-09 14 views
0

나는 firebase auth (및 firestore 데이터베이스)를 사용하지만 페이스 북 로그인 만 사용하는 앱을 만들고 있습니다.FIRAuthErrorDomain Code = 17014 firebase auth b/c에서 삭제할 때 오류가 발생하여 iOS 앱 (신속)에 다시 로그인하지 못합니까?

사용자 만 그들은 내가

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} 

정말 다시 로그인 할 수있는 사용자를 얻을해야합니까? 왜냐하면 나는 그들에게 페이스북으로 다시 로그인하여 fb의 페이지로 되돌려 보내야 만 계정을 삭제할 수 있기 때문에 잔인 함을 의미하기 때문입니다. 로그인을 확인하기 위해 되돌릴 수있는 토큰이 있습니까?

이 가능한 별도의 문제입니다 ...하지만이 있었다 그래서 나는 중포 기지 콘솔에서 직접 사용자를 삭제하는 경우에는 사용자 나 클라이언트

인증에 앉아 응용 프로그램에서 확신 시스템에 남아 있지. auth(). currentUser는 nil이 아니며 삭제 한 사용자 계정의 uid를 여전히 포함하고 있습니다. 그게 왜 확실하지.

감사합니다.

답변

1

이것은 보안상의 이유로 수행되었습니다. 재 인증은 중요한 작업입니다. 비밀번호를 업데이트하려고 할 때와 동일 (이전 비밀번호를 입력해야 함), 이메일 업데이트, 신용 카드 업데이트, 전자 상거래 앱의 배송 주소 지정 등이 있습니다. 편리하지 않을 수 있지만 사용자의 보안. 좋은 실행을 위해이를 시행해야합니다. 당신이 당신의 서버에서 사용자를 삭제해야하는 경우, 당신은 항상 관리 SDK admin.auth().deleteUser(uid) API 사용할 수 있습니다 https://firebase.google.com/docs/auth/admin/manage-users#delete_a_user

별도로를, 당신도 reload에 사용자가 필요하거나 삭제를 감지 강제로 토큰 getIDToken 다시 시도 사용자의