시작하기 전에
- iOS 프로젝트에 Firebase를 추가합니다.
Podfile
에 다음 pod를 추가합니다.pod 'Firebase/Auth'
- 다음과 같이 프로젝트의 서버 키를 가져옵니다.
- 프로젝트 설정의 서비스 계정 페이지로 이동합니다.
- 서비스 계정 페이지의 Firebase Admin SDK 섹션 하단에서 새 비공개 키 생성을 클릭합니다.
- 새 서비스 계정의 공개 키/비공개 키 쌍이 자동으로 컴퓨터에 저장됩니다. 이 파일을 인증 서버에 복사합니다.
Firebase 인증
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];
- 사용자가 앱에 로그인하면 사용자의 로그인 인증 정보(예: 사용자 이름과 비밀번호)를 인증 서버로 전송하세요. 서버가 사용자 인증 정보를 확인하고 정보가 맞으면 커스텀 토큰을 반환합니다.
- 인증 서버에서 커스텀 토큰을 받은 후 다음과 같이 이 토큰을
signInWithCustomToken
에 전달하여 사용자를 로그인 처리합니다.Swift
Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in // ... }
Objective-C
[[FIRAuth auth] signInWithCustomToken:customToken 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; }
또한 모든 인증 오류에 대한 오류 처리 코드를 추가할 수도 있습니다. 오류 처리를 참조하세요.