일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- android notification
- RecyclerView in Admob
- android remoteconfig
- android 앱업데이트 없이 변경하기
- 테러우편물
- 정국라면
- 앱에 광고달기
- android 영단어 기능 만들기
- 안드로이드
- 우편물재난문자
- 안드로이드 뒤집히는 뷰
- 정국라면레시피
- 앱 광고 설정
- 앱에 광고 수익
- android kotlin
- android 터치시 뒤집히는 뷰
- 불그리레시피
- 안드로이드 리스트뷰와 광고
- Android
- Android AdMob
- android 뒤집히는 카드뷰
- firebase RemoteConfig
- FlipView
- 라면레시피추천
- 국제우편물
- android 수익
- kotlin
- 애드몹 설정
- 안드로이드 광고
- android 광고달기
- Today
- Total
TAE
[Android/Kotlin]SNS(google) 로그인 본문
이번에는 SNS로그인 중 google로그인을 구현해 보겠습니다.
카카오 로그인은
https://tg-world.tistory.com/17
이 포스팅을 참고하시면 됩니다.
1. 프로젝트 설정
기본 요건은 아래와 같습니다.
- Android 4.4이상이여야 하고, Google Play 스토어 또는 Android 4.2.2 이상 기반의 Google API 플랫폼을 실행하고 Google Play 서비스가 포함된 AVD가 포함된 에뮬레이터를 포함하는 호환 Android 기기 버전 15.0.0 이상
- SKD 도구 구성요소를 포함한 최신 버전의 Android SDK SDK는 Android 스튜디오의 Android SDK Manager에서 사용 할 수 있습니다.
- Android 4.4(KitKat) 이상에서 컴파일
google로그인은 아래 사이트( google 클라우드 플랫폼)에 접속하여 앱을 등록해야 합니다.
https://console.cloud.google.com/welcome?project=perceptive-lamp-390406
API 및 서비스 > 사용자 인증 정보 > 사용자 인증 정보 만들기 > OAuth 2.0 클라이언트 ID
생성 후 프로젝트 이름, 패키지 이름, SHA-1 인증서를 등록해 줍니다.
SHA-1인증서는 debug용을 사용할 예정입니다.
안드로이드 스튜디오에서 하단 Terminal에서 명령어를 입력하여 줍니다.
Window : keytool -list -v \ -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
Mac : keytool -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
password는 android 를 입력해 주시면 됩니다.
인증서 지문:
SHA1: 32:A7:C2:BB:E2:G1:SW:55:41:CS:41:D0:DD:F2:34:Q2:2A:CA:FF:36
위와 같은 형식으로 나오게 되는 SHA1 지문을 복사하여 입력하시면 됩니다.
2. Gradle설정
build.gradle(app) 부분에 아래 코드를 설정해줍니다.
dependencies {
...
implementation "com.google.android.gms:play-services-auth:20.1.0" //google로그인
}
3. 코드
LoginActivity.kt
앱에 필요한 사용자 데이터를 요청하도록 구글 로그인을 구성하여 줍니다. 사용자의 ID와 기본 프로필 정보를 요청하기 위해 GoogleSignInOption 인스턴스 생성 시 파라미터로 DEFAULT_SIGN_IN을 전달하고, 사용자의 이메일 주소를 요청하기 위해 requestEmail()을 호출하여 줍니다.
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build()
gso를 통해 가져올 클라이언트의 정보를 담을 객체를 만들어 줍니다.
val mGoogleSignInClient = GoogleSignIn.getClient(this,gso)
xml 구성
<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
GoogleSignResultLauncher 생성
private lateinit var GoogleSignResultLauncher:ActivityResultLauncher<Intent>
GoogleSignResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()){ result ->
val task: Task<GoogleSignInAccount> = GoogleSignIn.getSignedInAccountFromIntent(result.data)
handleSignInResult(task)
}
StartActivityForResult가 deprecated 되었기 때문에 registerForActivityResult 를 사용하였습니다.
handleSignInResult
사용자 정보를 가져옵니다.
fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
try {
val account = completedTask.getResult(ApiException::class.java)
val email = account?.email.toString()
var googletoken = account?.idToken.toString()
var googletokenAuth = account?.serverAuthCode.toString()
Log.e("Google account",email)
Log.e("Google account",googletoken)
Log.e("Google account", googletokenAuth)
} catch (e: ApiException){
Log.e("Google account","signInResult:failed Code = " + e.statusCode)
}
}
로그인한 사용자에 대한 정보가 반환되기 때문에, task를 이용해 다음과 같이 사용자의 정보를 다룰 수 있습니다.
참조
https://developers.google.com/identity/sign-in/android/start-integrating
https://developers.google.com/identity/sign-in/android/sign-in
'android' 카테고리의 다른 글
[Android/Kotlin] RemoteConfig로 클릭하면 뒤집히는 뷰로 영단어 암기장 만들기 (0) | 2023.08.10 |
---|---|
[Android/Kotlin] 클릭하면 뒤집히는 뷰로 영단어 암기장 만들기 flip view(플립뷰) (0) | 2023.08.10 |
[Android/Kotlin] 숏츠 화면 만들기 (ExoPlayer) (0) | 2023.07.12 |
[Android] 안드로이드 스튜디오 글씨체 폰트파일 적용 (0) | 2023.06.23 |
[android studio] 로그캣 예전 버전으로 설정하기 (0) | 2023.06.22 |