Firebase 인증을 사용하면 사용자가 자신의 이메일 계정과 비밀번호로 Firebase를 인증하고 앱의 비밀번호 기반 계정을 관리하게 할 수 있습니다.
시작하기 전에
- iOS 프로젝트에 Firebase를 추가합니다.
Podfile
에 다음 pod를 추가합니다.pod 'Firebase/Auth'
- 아직 Firebase 프로젝트에 앱을 연결하지 않았다면 Firebase Console에서 연결합니다.
- 다음과 같이 이메일 및 비밀번호 로그인 방법을 사용 설정합니다.
- Firebase Console에서 인증 섹션을 엽니다.
- 로그인 방법 탭에서 이메일/비밀번호 로그인 방법을 사용 설정하고 저장을 클릭합니다.
비밀번호 기반 계정 생성하기
비밀번호가 있는 신규 사용자 계정을 만들려면 앱의 로그인 활동에서 다음 단계를 완료합니다.
UIApplicationDelegate
에서 Firebase 모듈을 가져옵니다.Swift
import Firebase
Objective-C
@import Firebase;
- 일반적으로 앱의
application:didFinishLaunchingWithOptions:
메서드에서FirebaseApp
공유 인스턴스를 구성합니다.Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- 신규 사용자가 앱의 가입 양식을 사용하여 가입하면 앱에서 요구하는 새 계정 유효성 검사 단계를 완료합니다. 검사 항목에는 신규 계정의 비밀번호를 정확하게 입력했는지, 비밀번호가 복잡성 조건을 충족하는지 등이 있습니다.
- 신규 사용자의 이메일 주소와 비밀번호를
createUserWithEmail:email:password:completion:
에 전달하여 새 계정을 만듭니다.Swift
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in // ... }
Objective-C
[[FIRAuth auth] createUserWithEmail:email password:password completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
이메일 주소와 비밀번호로 사용자 로그인 처리하기
비밀번호로 사용자 로그인을 처리하는 절차는 신규 계정을 생성하는 절차와 비슷합니다. 앱의 로그인 활동에서 다음을 수행합니다.
UIApplicationDelegate
에서 Firebase 모듈을 가져옵니다.Swift
import Firebase
Objective-C
@import Firebase;
- 일반적으로 앱의
application:didFinishLaunchingWithOptions:
메서드에서FirebaseApp
공유 인스턴스를 구성합니다.Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- 사용자가 앱에 로그인하면 사용자의 이메일 주소와 비밀번호를
signInWithEmail:email:password:completion:
에 전달합니다.Swift
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in guard let strongSelf = self else { return } // ... }
Objective-C
[[FIRAuth auth] signInWithEmail:self->_emailField.text password:self->_passwordField.text completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
다음 단계
사용자가 처음으로 로그인하면 신규 사용자 계정이 생성되고 사용자 인증 정보(사용자가 로그인할 때 사용한 사용자 이름과 비밀번호, 전화번호 또는 인증 제공업체 정보)에 연결됩니다. 이 신규 계정은 Firebase 프로젝트에 저장되며 사용자의 로그인 방법과 무관하게 프로젝트 내의 모든 앱에서 사용자 본인 확인에 사용할 수 있습니다.
Firebase 실시간 데이터베이스와 Cloud Storage 보안 규칙의
auth
변수에서 로그인한 사용자의 고유 사용자 ID를 가져온 후 이 ID를 통해 사용자가 액세스할 수 있는 데이터를 관리할 수 있습니다.
인증 제공업체의 사용자 인증 정보를 기존 사용자 계정에 연결하면 사용자가 여러 인증 제공업체를 통해 앱에 로그인할 수 있습니다.
사용자를 로그아웃시키려면 signOut:
을 호출합니다.
Swift
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print ("Error signing out: %@", signOutError) }
Objective-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
또한 모든 인증 오류에 대한 오류 처리 코드를 추가할 수도 있습니다. 오류 처리를 참조하세요.