일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- five lines of cdde
- algorithm
- 클린코드
- firestore
- five lines of code
- css학습
- mrc
- RxSwift
- TDD
- 카카오맵클론
- Swift코딩테스트
- Swift디자인패턴
- ios면접
- IOS
- firebase
- Safari Inspector
- unittest
- AutoLayout
- 프로그래머스
- alamofire
- 코딩테스트입문
- SWIFT
- ARC
- 리팩터링
- UIKit
- storekit2
- RC
- 앱의생명주기
- Di
- hackerrank
- Today
- Total
샘성의 iOS 개발 일지
구글 로그인 구현하기 본문
어제 한 카카오톡을 이어서
이번에는 구글 로그인을 해보려고 한다.
https://developers.google.com/identity/sign-in/ios/start-integrating?hl=ko
iOS 및 macOS용 Google 로그인 시작하기 | Authentication | Google Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 iOS 및 macOS용 Google 로그인 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류
developers.google.com
1. 모듈 설치
카카오톡과 일관되게 Cocoapods로 진행할 것이다.
pod 'GoogleSignIn' // pod file에 작성 후 ctrl+S 로 저장
pod 'GoogleSignInSwiftSupport' // SwiftUI 쓰는 경우 같이 설치 (UIkit은 필요 없음)
그리고 터미널에 파일 경로로 가서
pod install
하면 끝 -
2. OAuth 클라이언트 ID 만들기
필자는 OAuth 클라이언트 ID를 만들어놓지 않았기 때문에 새로 만들 것이다.
1. 이 글 최상단에 위치한 링크 접속
2. 'OAuth 클라이언트 ID 만들기' 클릭
3. 프로젝트명 기입
4. 유저의 동의 화면에 보여지고 싶은 이름 입력하기
5. 앱 환경 - iOS 선택 >> 사용할 Xcode프로젝트의 번들 ID 입력
6. 완료!
3. 프로젝트 세팅하기 -1
1. Target - 프로젝트 >> Info >> URL Types 추가하기 (하단에 + 버튼 클릭)
2. URL Types에 발급받은 Client ID 복사하기 (하단의 형태처럼 되어있는 클라이언트ID를 역순으로 하여 사용하면 된다.)
com.googleusercontents.apps.개인아이디숫자들-문자들 // 역순으로 된 형태임
3. URL Schemes에 2번에서 복사한 클라이언트ID 붙여넣기
4. 프로젝트 세팅 -2
1. iOS 13.0 이상만 지원하는 경우, 하단의 코드를 SceneDelegate에 추가
import GoogleSignIn
// SceneDelegate 13.0 이상 지원인 경우
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let googleURL = URLContexts.first?.url else { return }
let _ = GIDSignIn.sharedInstance.handle(googleURL)
}
1-1. iOS 13.0 이하 버전도 지원하는 경우, 하단 코드를 AppDelegate에 추가적으로 세팅 (필자는 패스 ..~)
import GoogleSignIn
// AppDelegate - 13.0 이하 지원 하는 경우, 추가적으로 세팅
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool {
if GIDSignIn.sharedInstance.handle(url) {
return true
}
return false
}
2. 로그인 구현할 ViewController에 하단 코드로 로그인 구현 및 로그인 정보로 원하는 로직 구현하면 된다.
// 로그인을 구현할 ViewController
import GoogleSignIn
let config = GIDConfiguration(clientID: "개인 클라이언트ID (이번엔 역순 아님!!!!!!)")
GIDSignIn.sharedInstance.configuration = config
GIDSignIn.sharedInstance.signIn(withPresenting: self) { [weak self] user, error in
if let error = error { print(error); return }
// do something
}
2-1. 로그인 여부 체크 후, 로그인 경우 로그아웃 / 버튼 누르고 로그인 하면, label text를 유저 프로필 이름으로 바꾸게 해봤다.
@IBAction func handleGoogleButton(_ sender: Any) {
let config = GIDConfiguration(clientID: "개인 클라이언트ID - 이번엔 역순 아님 주의")
GIDSignIn.sharedInstance.configuration = config
if GIDSignIn.sharedInstance.hasPreviousSignIn() { //로그인 여부 확인
GIDSignIn.sharedInstance.signOut()
self.userNameLabel.text = "구글 로그아웃 완료"
return
}
GIDSignIn.sharedInstance.signIn(withPresenting: self) { [weak self] user, error in
if let error = error { print(error); return }
self?.userNameLabel.text = user?.user.profile?.name
}
}
- 끝
'iOS > UiKit' 카테고리의 다른 글
구글 유저 정보 Firebase RealTime Database에 저장하기 (0) | 2023.05.07 |
---|---|
애플 로그인 구현하기 (0) | 2023.05.05 |
카카오톡 로그인 구현하기 (0) | 2023.05.03 |
UIView 모서리 선택적으로 깎기 (0) | 2023.05.02 |
[오픈소스 라이브러리] JGProgressHUD 사용하기 (0) | 2023.04.08 |