2017-04-20 1 views
0

사용자에게 서버 지원을 제공하기 위해 iOS 앱에서 Firebase을 사용하고 있습니다. 누군가 자신의 자격 증명 (전자 메일/암호) 또는 그의 표시 이름을 변경하려고 할 때 현재 자격 증명을 확인하도록 요청합니다. 제공된 자격 증명이 현재 로그인 한 사용자와 일치하는지 확인하는 방법 (API)이 있습니까? 로그 아웃을 수행하고 제공된 자격 증명이 올바를 때 다시 로그인을 시도하는 것 이외의 다른 방법이 있습니까?사용자가 로그인 한 상태에서 자격 증명을 확인하는 방법은 무엇입니까? (Firebase에서)

답변

2

중포 기지

let user = FIRAuth.auth()?.currentUser 
var credential: FIRAuthCredential 

// Prompt the user to re-provide their sign-in credentials 

user?.reauthenticate(with: credential) { error in 
    if let error = error { 
    // An error happened. 
    } else { 
    // User re-authenticated. 
    } 
} 

이메일 사용하여 사용자를 재 인증하기 위해 아래의 방법을 사용

let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email,` password: password) 

페이스 북 :

let credential = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken().tokenString) 

트위터 :

let credential = FIRTwitterAuthProvider.credentialWithToken(session.authToken, secret: session.authTokenSecret) 
을3210

구글 :

let authentication = user.authentication 
let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken) 

을 heres IOS ios user management in firebase

+0

OK 에서 사용자 관리를 설명하는 중포 기지 링크. 나는 로그인이 너무 오래되었을 때 FIRAuth.auth()? signIn()을 사용하여 재 인증을 재현하고있었습니다 (재 인증이 있음을 알지 못함). 어쨌든, 내가 바라는 바대로 보이지 않는 것 같습니다.이 방법은 자격 증명이 잘못되면 사용자를 로그 아웃합니다 (나는 생각합니다). 나는 사용자를 로그 아웃하는 것없이 간단하게 비교할 것을 생각하고 있었다. – Michel

+0

그런 경우에는 자격 증명을 로컬에 저장 한 다음 비교를하면 자격증 명을 저장하는 동안 AES 256과 같은 일부 암호화 기술을 적용해야합니다. –

+0

나는 본다. 그런데 어떻게 답안에 언급 한 자격증 명 변수를 설정합니까? (나는 스위프트 3을 사용하고있다). – Michel

관련 문제