목차

티스토리 뷰

728x90
반응형

안녕하세요 🐾

오늘은 iOS 구글 로그인 SDK 적용 과정에 대하여 정리해보았습니다.

다른 소셜 로그인 SDK 적용은 아래의 글을 참고해 주세요!

 

※ 2013.12.26 기준으로 반영되었습니다.

 

2023.12.22 - [iOS/Swift] - [iOS] 페이스북 로그인 SDK 적용

2023.06.21 - [iOS/Swift] - [iOS] 네이버 로그인 SDK 연동하기

2023.06.21 - [iOS/Swift] - [iOS] 카카오톡 로그인 SDK 연동하기


 

1. 프로젝트 설정

1.1 SDK 설치

CocoaPods 설치

in podfile,

pod 'GoogleSignIn'

 

1.2 구글 프로젝트 생성

해당 링크로 접속 → OAuth 클라이언트 ID 만들기Create a new project

 

 

프로젝트 이름 입력

 

 

사용자 동의화면에 나올 제품명 입력, 프로젝트 이름과 동일하게 입력하겠습니다.

 

 

플랫폼은 iOS , Bundle ID는 프로젝트의 Bundle Identifier를 입력

 

 

발급된 클라이언트 ID를 저장

 

1.3 Info.plist 업데이트

Xode 프로젝트 → Info.plist 우클릭 → Open AsSource Code 선택

<!-- <dict>...</dict> 사이에 아래의 코드블록을 삽입 -->


<key>GIDClientID</key>
<string>YOUR_IOS_CLIENT_ID</string>
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>YOUR_DOT_REVERSED_IOS_CLIENT_ID</string>
    </array>
  </dict>
</array>

 

위 코드블럭에서 YOUR_IOS_CLIENT_ID직전에 발급받았던 구글 클라이언트 ID를 그대로 붙여넣고,

YOUR_DOT_REVERSED_IOS_CLIENT_ID클라이언트 ID를 반전시킨 값을 아래와 같이 입력합니다.

예) [CLIENT_ID]: 123-1q2w3e.apps.assum.com , [REVERSED_ID]: com.assum.apps.123-1q2w3e

 

 

2. 코드 작성

2.1 AppDelegate.swift

구글 인증 리다이렉션 처리를 위해 아래의 코드 추가

import GoogleSignIn

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
  var handled: Bool

  handled = GIDSignIn.sharedInstance.handle(url)
  if handled {
    return true
  }

  // Handle other custom URL types.

  // If not handled by this app, return false.
  return false
}

 

 

2.2 ViewController.swift

//  Created by Assum on 2023/12/26.

import UIKit
import GoogleSignIn

class ViewController: UIViewController {
    
    let googleLogin: UIButton = {
        let button = UIButton()
        button.setTitle("구글 로그인", for: .normal)
        button.setTitleColor(.blue, for: .normal)
        return button
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        googleLogin.frame.size = CGSize(width: 150, height: 48)
        googleLogin.center = view.center
        googleLogin.addTarget(self, action: #selector(login(_:)), for: .touchUpInside)
        view.addSubview(googleLogin)
    }
    
    @objc func login(_ sender: UIButton) {
        GIDSignIn.sharedInstance.signIn(withPresenting: self) { signInResult, error in
            guard error == nil else { return }
            
            // If sign in succeeded, display the app's main content View.
            let email = signInResult?.user.profile?.email ?? ""
            let name = signInResult?.user.profile?.name ?? ""
            
            let user = signInResult?.user
            let idToken = user?.idToken?.tokenString
            let accessToken = user?.accessToken.tokenString
            let refreshToken = user?.refreshToken.tokenString
            
            print(email)
            print(name)
        }
    }
}

 

3. 결과

프로젝트 실행 후 로그인을 진행해보면 결과가 자알 나타나고 있네요.

 

읽어주셔서 감사합니다. 틀린곳이 있다면 알려주세요 :)

 

4. 참고

반응형
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함