2016-07-29 4 views
0

Firebase를 인증 용 백엔드로 사용하는 iOS 앱이 있습니다.Firebase 3에서 acccess 토큰 재사용

사용자가 로그인 한 다음 앱을 닫으면 사용자가 이메일과 비밀번호를 다시 입력하지 않아도됩니다. 내 접근 방식은 키 체인에 성공적으로 로그인 한 후 액세스 토큰을 저장 한 다음 사용자가 앱으로 돌아 왔을 때 키 체인의 토큰을 사용하여 로그인하는 것입니다.

나는 FIRAuth.auth()?.signInWithCustomToken(customToken) { (user, error) in이라는 방법을 사용 해봤지만 사용자 토큰을 사용할 때와는 다르다.

내가 할 수있는 방법이 있습니까?

// login with email/password 
FIRAuth.auth()?.signInWithEmail(email, password: password, completion: { (firebaseUser, error) in 
    if error == nil { 
     FIRAuth.auth()!.currentUser!.getTokenWithCompletion({ (token, error) in 
     if error == nil { 
      // save token to keychain 
     } else { 
      print(error) 
     } 
     }) 

    } else { 
    print(error) 
    } 
}) 


// user comes back to app 
do { 
// get saved token from keychain 
    if let myToken = try keychain.get("token") { 
    FIRAuth.auth()?.signInWithCustomToken(myToken, completion: { (user: FIRUser?, error: NSError?) in 
     if error == nil { 
     // show post login screen 
     } else { 

     } 
    }) 
    } 
} catch { 
// error getting token from keychain 
} 

}

답변

0

내가 잘못된 방법으로이 문제에 접근했다. 토큰을 저장하는 것은 Facebook, Google 등의 타사 인증 공급자를 사용하고 해당 서비스 중 하나에서 대가로 OAuth 토큰을받는 경우에 적합합니다.

내 경우 전자 메일 및 암호를 사용하여 로그인 할 때 토큰이 필요하지 않으며 대신 암호를 키 체인에 안전하게 저장하고 나중에 로그인에 사용할 수 있습니다.

관련 문제