500error
[안드로이드, Kotlin] 구글 로그인 구현 본문
반응형
import android.app.Activity
import android.content.Intent
import android.util.Log
import android.widget.Toast
import com.google.android.gms.auth.api.signin.GoogleSignIn
import com.google.android.gms.auth.api.signin.GoogleSignInAccount
import com.google.android.gms.auth.api.signin.GoogleSignInClient
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import com.google.android.gms.common.api.ApiException
class LoginGoogle(activity: Activity) {
private var googleSignInClient: GoogleSignInClient
init {
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(activity, gso)
}
fun signIn(activity: Activity) {
val signInIntent = googleSignInClient.signInIntent
activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN)
}
fun handleSignInResult(data: Intent?, onGoogleSignInComplete: (GoogleSignInAccount?) -> Unit) {
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
try {
val account = task.getResult(ApiException::class.java)
onGoogleSignInComplete(account)
} catch (e: ApiException) {
Log.e("LoginGoogle", "Google sign in failed", e)
}
}
// fun signOut(activity : Activity) {
// googleSignInClient.signOut()
// .addOnCompleteListener {
// Toast.makeText(activity, "로그아웃 되셨습니다!", Toast.LENGTH_SHORT).show()
// }
// }
companion object {
const val RC_GOOGLE_SIGN_IN = 9001
}
}
LoginGoogleActivity
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
// Google 로그인 결과 처리
if (requestCode == LoginGoogle.RC_GOOGLE_SIGN_IN) {
googleSignIn.handleSignInResult(data) { account ->
// Google 로그인 완료 후 처리할 내용
if (account != null) {
// 로그인 성공
// account를 사용하여 필요한 작업 수행
onGoogleSignInComplete(account)
} else {
cprgBar.dismiss()
Toast.makeText(
this,
"구글 로그인 실패",
Toast.LENGTH_SHORT)
.show()
}
}
}
}
LoginActivity
반응형
'안드로이드 > 코틀린' 카테고리의 다른 글
error: failed to push some refs to "깃 path" 오류 해결방법 (0) | 2024.10.15 |
---|---|
[안드로이드, Kotlin] 백키 구현 (0) | 2024.10.15 |
[안드로이드, Kotlin] 계산기 앱 만들기 - 개인 프로젝트 3 (0) | 2024.02.21 |
[안드로이드, Kotlin] 단위변환기 앱 만들기 - 개인 프로젝트 2 (0) | 2024.01.04 |
[안드로이드, Kotlin] 숫자세기(계수기) 앱 만들기 - 개인 프로젝트 1 (1) | 2024.01.04 |
Comments