๐Ÿ”‘์•ฑ์—์„œ ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ

sangheeยท2021๋…„ 8์›” 29์ผ
1

๐Ÿ”ฅFirebase

๋ชฉ๋ก ๋ณด๊ธฐ
4/5
post-thumbnail

GoogleSignIn ์„ค์น˜ํ•˜๊ธฐ

GoogleSignIn๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ๋Š” cocoapods๋ฅผ ์ด์šฉํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์„ค์น˜ํ•˜์˜€๊ธฐ์— Podfile์— ์ถ”๊ฐ€ํ•˜๊ณ  pod install๋กœ ์„ค์น˜ํ•˜์˜€๋‹ค.

pod 'GoogleSignIn'

GoogleSignIn ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

Controller ํŒŒ์ผ์—์„œ GoogleSignIn๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

import GoogleSignIn

๋กœ๊ทธ์ธ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ

๊ตฌ๊ธ€์—์„œ ์ œ๊ณตํ•˜๋Š” GIDSignInButton๋กœ ๋ฒ„ํŠผ์„ ์ƒ์„ฑํ•œ๋‹ค. colorScheme๊ณผ style์„ ์„ ํƒ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ดํ›„ ๋‹ค์Œ์— ๋งŒ๋“ค handleGoogleLogin ํ•จ์ˆ˜์™€ ์—ฐ๊ฒฐํ•œ๋‹ค.

์ € ๋ฒ„ํŠผ์€ ์น˜๋ช…์ ์ธ ๋‹จ์ ์€ ์ปค์Šคํ…€์ด ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค๐Ÿ˜ซ. ๊ทธ๋ฆผ์ž๋งŒ ์ง€์šฐ๋ฉด ์“ธํ…๋ฐ ์ฝ”๋“œ ์ถ”๊ฐ€ํ•ด๋„ ์•ˆ๋จน๋Š”๋‹ค. ์ œ๋ฐœ..

๋‚˜๋Š” ์ € ๋ฒ„ํŠผ ๋Œ€์‹  ์ถ”๊ฐ€๋กœ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์—ˆ๊ณ , ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•˜์˜€๋‹ค.

private let googleButton: GIDSignInButton = {
    let button = GIDSignInButton()
    button.colorScheme = .light
    button.style = .standard
    button.addTarget(self, action: #selector(handleGoogleLogin), for: .touchUpInside)
    return button
}()

๋กœ๊ทธ์ธ ํ•จ์ˆ˜ ๊ตฌํ˜„

"YOUR_IOS_CLIENT_ID"์ž๋ฆฌ์— GoogleService-Info.plist์—์„œ์˜ CLIENT_ID๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธ์ด ์™„๋ฃŒ๋˜๋ฉด, ์œ ์ €์˜ ํ”„๋กœํ•„ ์ •๋ณด(์ด๋ฉ”์ผ ์ฃผ์†Œ, ์ „์ฒด์ด๋ฆ„, ์ด๋ฆ„, ์„ฑ)๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

@objc func handleGoogleLogin() {
    let signInConfig = GIDConfiguration.init(clientID: "YOUR_IOS_CLIENT_ID")
    GIDSignIn.sharedInstance.signIn(with: signInConfig, presenting: self) { user, error in
        guard error == nil else { return }
        guard let user = user else { return }
        
        let emailAddress = user.profile?.email

        let fullName = user.profile?.name
        let givenName = user.profile?.givenName
        let familyName = user.profile?.familyName

        let profilePicUrl = user.profile?.imageURL(withDimension: 320)
    }
}

โ—๏ธํด๋ผ์ด์–ธํŠธ ์•„์ด๋”” ๊ฐ€๋ฆฌ๊ธฐ

๊ณต์‹๋ฌธ์„œ๋Œ€๋กœ ํ•˜๊ธฐ ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ ์•„์ด๋””๋ผ๋Š” ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ๊ทธ๋Œ€๋กœ ์ปค๋ฐ‹์— ๋“ค์–ด๋‚˜๊ฒŒ ๋œ๋‹ค. GoogleService-InfoํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ FirebaseApp์œผ๋กœ๋ถ€ํ„ฐ ํด๋ผ์ด์–ธํŠธ ์•„์ด๋””๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด ์ž‘์„ฑํ•˜์˜€๋‹ค.

let googleClientId = FirebaseApp.app()?.options.clientID ?? ""
let signInConfig = GIDConfiguration.init(clientID: googleClientId)

Google ๊ฐœ๋ฐœ๋ฌธ์„œ - Sign In for iOS

profile
๐Ÿ‘ฉโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€