커스텀 인증 시스템을 사용하여 Firebase에 인증

Firebase 인증에 맞춤 인증 시스템을 통합할 수 있습니다. 사용자가 정상적으로 로그인할 때 맞춤 서명 토큰을 발행하도록 인증 서버를 수정하면 됩니다. 그러면 앱이 이 토큰을 받아 Firebase 인증에 사용합니다.

시작하기 전에

  1. 아직 수행하지 않았다면 시작하기 가이드의 단계를 따르세요.
  2. Firebase Admin SDK를 설치하고 구성합니다. Firebase 프로젝트의 올바른 사용자 인증 정보로 SDK를 초기화해야 합니다.

Firebase 인증

  1. 사용자가 앱에 로그인하면 사용자의 로그인 인증 정보(예: 사용자 이름과 비밀번호)를 인증 서버로 전송하세요. 서버가 사용자 인증 정보를 확인하여 정보가 유효하면 커스텀 Firebase 토큰을 생성하고 이 토큰을 앱으로 다시 보냅니다.

  2. 인증 서버에서 커스텀 토큰을 받은 후 다음과 같이 이 토큰을 signInWithCustomToken()에 전달하여 사용자를 로그인 처리합니다.

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

다음 단계

사용자가 새 계정을 만들면 이 계정이 Firebase 프로젝트의 일부로 저장되며, 사용자가 사용한 로그인 방법과 관계없이 프로젝트의 모든 앱에서 사용자 식별에 사용될 수 있습니다.

앱의 User 객체에서 사용자의 기본 프로필 정보를 가져올 수 있습니다. 사용자 관리를 참조하세요.

Firebase 실시간 데이터베이스와 Cloud Storage 보안 규칙의 auth 변수에서 로그인한 사용자의 고유 사용자 ID를 가져온 후 이 ID를 사용해 사용자가 액세스할 수 있는 데이터를 관리할 수 있습니다.

인증 제공업체의 사용자 인증 정보를 기존 사용자 계정에 연결하면 사용자가 여러 인증 제공업체를 통해 앱에 로그인할 수 있습니다.

사용자를 로그아웃시키려면 signOut()을 호출합니다.

await FirebaseAuth.instance.signOut();