Firebase Android Apple 인증
로그인 제공업체 추가
Firebase Console에서 인증 > 로그인 방법 > 새 제공업체 추가 > Apple 을 사용 설정합니다.
안드로이드에서 애플 로그인을 하기 위해선 우선 서비스 ID가 필요합니다.
서비스 ID 생성
Certificates, Identifiers & Profiles 에서 Identifiers 클릭
왼쪽 상단에 있는 추가 버튼(+)을 클릭하고 Services ID 를 선택한 다음 Continue.
Services ID에 대한 설명을 입력합니다. 식별자에 리버스 도메인 이름 스타일 문자열을 입력한 다음 Continue.
생성된 Services ID를 클릭해서 Sign in with Apple 체크 박스를 체크
Configure를 클릭해서 파이어베이스 애플 로그인 세팅에 있었던 승인 콜백 URL을 넣어줍니다.
설정을 다 완료하고 서비스 ID에 생성한 Services ID의 Identifier를 넣어줍니다.
OAuth 코드 흐름 구성 채우기
이제 OAuth 코드 흐름 구성을 열어 빈칸들을 다 채워줍니다.
Apple 팀 ID
Apple 팀 ID 는 애플 개발자 계정 에서 멤버십 세부사항에서 팀 ID 를 찾아서 넣어주면 됩니다.
키 ID 생성
Certificates, Identifiers & Profiles 에서 Keys 클릭 Key Name 을 설정하고
Sign in with Apple 체크하고 Continue
여기에서 생성된 Key ID를 키 ID에 넣어주고 Key를 다운받아 줍니다.
AuthKey_KEYIDKEYID.p8 이런 형태의 파일을 받아서 열고
-----BEGIN PRIVATE KEY-----
THISPARTISTHEPRIVATEKEYTHISPARTISTHEPRIVATEKEY
THISPARTISTHEPRIVATEKEYTHISPARTISTHEPRIVATEKEY
THISPARTISTHEPRIVATEKEYTHISPARTISTHEPRIVATEKEY
-----END PRIVATE KEY-----
전부 복사해서 비공개 키에 넣어주면 됩니다.
사실 OAuth 코드 흐름 구성 빈칸 채우는 부분이 제일 힘든 부분이고 나머지 구현은 파이어베이스 문서 대로 따라하면 됩니다.
Firebase SDK로 로그인 과정 처리
1. 제공업체 ID apple.com을 사용하여 빌더로 OAuthProvider의 인스턴스를 생성합니다.
OAuthProvider.Builder provider = OAuthProvider.newBuilder("apple.com");
2. OAuth 제공업체 객체를 사용해 Firebase에 인증합니다.
대기 중인 결과가 있는지 확인하려면 다음과 같이 getPendingAuthResult()를 호출합니다.
mAuth = FirebaseAuth.getInstance();
Task<AuthResult> pending = mAuth.getPendingAuthResult();
if (pending != null) {
pending.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
Log.d(TAG, "checkPending:onSuccess:" + authResult);
// Get the user profile with authResult.getUser() and
// authResult.getAdditionalUserInfo(), and the ID
// token from Apple with authResult.getCredential().
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "checkPending:onFailure", e);
}
});
} else {
Log.d(TAG, "pending: null");
}
3. 대기 중인 결과가 없으면 startActivityForSignInWithProvider()를 호출하여 로그인 과정을 시작합니다.
mAuth.startActivityForSignInWithProvider(this, provider.build())
.addOnSuccessListener(
new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
// Sign-in successful!
Log.d(TAG, "activitySignIn:onSuccess:" + authResult.getUser());
FirebaseUser user = authResult.getUser();
// ...
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "activitySignIn:onFailure", e);
}
});
안드로이드에서 애플 인증 완료
'android' 카테고리의 다른 글
안드로이드 스튜디오 무선 디버깅 설치 Wi-Fi 페어링 (0) | 2024.12.23 |
---|---|
cocos2d-x 3.17.2 프로젝트 안드로이드 Target SDK 34 빌드 (1) | 2024.12.10 |
Android debug keystore SHA1 값 확인하기 (1) | 2024.11.29 |
안드로이드 애드몹 버전 올린 후 앱 실행시 크래시 해결 (0) | 2022.01.13 |
[Android Studio] 안드로이드 스튜디오 외부 라이브러리 AAR 삭제하기 (0) | 2021.10.04 |