๋ณธ ๊ฒ์๋ฌผ์ OAuth๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด ์๋ ์ ๊ฐ ์๊ฐํ ํน์ง์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
์ด๋ฒ์ ๋ค์ด์ด๋ฆฌ ์ฑ์ ์๋ก ์ ๋ฐ์ดํธํ๋ฉด์ ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
๊ธฐ์กด์ CoreData๋ก ์ฑ ๋ด์ ์ ์ฅํ๋ ๋ค์ด์ด๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ค ์์ ํ๊ฒ ์ ์ฅํ๊ธฐ ์ํด firebase์ ์ ์ฅํ๊ธฐ ์ํด์์๋ค.
์ ํ ์ ์ฑ ์ ๋ฐ๋ผ Apple๋ก๊ทธ์ธ์ ๊ตฌํํ์ง ์์ผ๋ฉด ๋ฆฌ์ ์ฌ์ ๊ฐ ๋๋ค. ๐ ๋ฐ๋ผ์ Apple Login์ ๋น์ฐํ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ , ์กฐ์ฌํด๋ณด๋ ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ์์ ๋ก๊ทธ์ธ์ด Kakao๋ผ๋ ๊ฒ์ ์๊ฒ๋์๋ค. ์ฌ์ฉ์์ ํธ์๋ฅผ ์ํด Kakao๋ฅผ ์ถ๊ฐํ๊ณ , ์ถ๊ฐ์ ์ผ๋ก ์ ์ ๊ตฌํํด๋ณธ ๊ฒฝํ์ด ์๋ Google๋ก๊ทธ์ธ๋ ํจ๊ป ์ ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
1. Apple
์ ํ๋ก๊ทธ์ธ์ ๊ผญ ์ ํ ๊ฐ๋ฐ์ ๊ณ์ ์ด ์์ด์ผ ํ๋ค. 1๋ ์ ์ฝ 12๋ง์ ๊ฐ๋ ๋์ ์ง๋ถํ ์ฌ๋๋ง ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๋ด๊ฐ ์์ ๋ก๊ทธ์ธ์ด ์๋ Email์ ์ด์ฉํ์ฌ ๋ก๊ทธ์ธํ๋ค๋ฉด ์ ํ ๋ก๊ทธ์ธ์ด ํ์์ ์ด์ง๋ ์๋ค. ๊ทธ ์ธ ๋ค๋ฅธ ์์ ๋ก๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์ ํ๋ก๊ทธ์ธ์ ๋ฌด์กฐ๊ฑด ๊ตฌํํด์ผ ๋ฆฌ์ ๋นํ์ง ์๋๋ค.
๋ํ ์ ํ์ด ๊ถ์ฅํ๋ ๋ฒํผ์ ๊ท๊ฒฉ์ ๋ง๊ฒ ์ฌ์ฉํด์ผ ํ๋ค. (์ฐธ๊ณ )์์ ์ ํ ๋ก๊ทธ์ธ์ ์ปค์คํ ์ ๋ค์ด๋ก๋ํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ด์ด๋ฒ ์ด์ค์์ ์ ๊ณตํด์ฃผ๋ ๋ก๊ทธ์ธ ์ ๊ณต์ ์ฒด ์ค ํ๋์ด๋ค. ๋ฐ๋ผ์ ํ์ด์ด๋ฒ ์ด์ค์์ ๋ก๊ทธ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ฌธ์๋ก ์ ๊ณตํด์ค๋ค.
2. Google
๊ตฌ๊ธ์ CocoaPods๋ Swift Package Manager๋ฅผ ํตํด 'GoogleSignIn-iOS'๋ฅผ ์ค์นํด์ผ ์ฌ์ฉํ ์ ์๋ค. (์ฐธ๊ณ )
์กฐ๊ธ ํน์ดํ๋ค๊ณ ๋๋์ ์ ๊ตฌ๊ธ์์ ์ ๊ณตํด์ฃผ๋ ๋ฒํผ์ ์ปค์คํ ์ด ๊ฑฐ์ ํ๋ค์๋ค. ๊ทธ๋์ ๋๋ ์ง์ ์ ์ํด ์ฌ์ฉํ์๋ค. (์ ๊ณตํด์ฃผ๋ ๋ฒํผ์ด ์ข ๋ง์ด ๋ณ๋ก์๋ค..ใ ใ )
๊ทธ๋ฆฌ๊ณ ํ์ด์ด๋ฒ ์ด์ค์์ ์ ๊ณตํด์ฃผ๋ ๋ก๊ทธ์ธ ์ ๊ณต์ ์ฒด ์ค ํ๋์ด๋ค. ๋ฐ๋ผ์ ํ์ด์ด๋ฒ ์ด์ค์์ ๋ก๊ทธ์ธํ๋ ๋ฐฉ๋ฒ์ ์ ํ๊ณผ ๋์ผํ๊ฒ ๋ฌธ์๋ก ์ ๊ณตํด์ค๋ค.
3. Email
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ํตํด ํ์๊ฐ์ ํ๊ณ ๋ก๊ทธ์ธํ๋ค. ํ์ด์ด๋ฒ ์ด์ค ์์ฒด์์ ์ด๋ฉ์ผ ํ์์ด ์๋ ์์ด๋๋ ์์ด๋๋ก ์ธ์ํ์ง ์์ ์๋ฌ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ์ด๋ฉ์ผํ์์ผ๋ก ์์ด๋๋ฅผ ์ ๋ ฅํ๋๋ก ์ ๋ํด์ผํ๋ค. ๋น๋ฐ๋ฒํธ๋ ๋ง์ฐฌ๊ฐ์ง๋ก 6์์ด์์ด ์๋๋ฉด ์๋ฌ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค. ์ด ๋ํ ์ฌ์ฉ์๊ฐ 6์์ด์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ ์ ์๋๋ก ์ ๋ํด์ผํ๋ค.
์ ๋ ฅํ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ด์ด๋ฒ ์ด์ค์์ ์ ๊ณตํ๋ createUser()๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ํ๊ณ , signIn()์ผ๋ก ๋ก๊ทธ์ธ ํ ์ ์๋ค.
๋๋ ๋ก๊ทธ์ธํ๋ฉด๊ณผ ํ์๊ฐ์ ํ๋ฉด์ด ๋ฌ๋ผ์ ๊ฐ๊ฐ์ ์ํฉ์ ์ ์ ํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋์์ง๋ง, ๋ก๊ทธ์ธ ๊ฒธ ํ์๊ฐ์ ์ ํ๋ ์ํฉ์์๋ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฌด์กฐ๊ฑด ํ์๊ฐ์ ์ ์๋ํ๊ณ ์์ด๋๊ฐ ์กด์ฌํ๋ฉด(์๋ฌ๊ฐ๋๋ฉด) ๋ก๊ทธ์ธ์ ์๋ํ๋๋ก ๊ตฌํํ๋ฉด ๋์๋ค. (๋๊ตฐ๊ฐ์ ๋ธ๋ก๊ทธ์์ ๋ดค๋ค..ใ ใ ) ์ด ๋ก์ง์ ์นด์นด์ค ๋ก๊ทธ์ธ์์ ํ์ฉํ์๋ค.
4. Kakao
์นด์นด์ค ๋ก๊ทธ์ธ์ ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๊ธฐ์ ๋ด๊ฐ ์๊ฐํ ๋๋ ์ด์ง๊ฐํ๋ฉด ๊ตฌํํด์ฃผ๋ฉด ์ข๋ค๊ณ ์๊ฐํ๋ค.
์นด์นด์ค ๋ก๊ทธ์ธ์ ํ์ด์ด๋ฒ ์ด์ค์์ ์ ๊ณตํด์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฉ์ผ ๋ก๊ทธ์ธ๊ณผ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธํ๋ค.
์ด๋ฉ์ผ๋ก๊ทธ์ธ์์๋ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋งค๊ฐ๋ณ์๊ฐ์ ๋ฃ์ด ์ ๋ฌํ์ง๋ง ์นด์นด์ค๋ก๊ทธ์ธ์ ์์ด๋๋ ์์ง๋ง ๋น๋ฐ๋ฒํธ๋ ์๊ธฐ ๋๋ฌธ์ User.id๋ผ๋์นด์นด์ค ๋ก๊ทธ์ธ API ํธ์ถ ํ ๋ฐ์ ๊ณ ์ ํ ๊ฐ์ ์ ๋ฌํ์ฌ ๋ก๊ทธ์ธํ๋ค.
์์์ ์ธ๊ธํ๋ค์ํผ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฌด์กฐ๊ฑด ํ์๊ฐ์ ์ ์๋ํ๊ณ ์์ด๋๊ฐ ์กด์ฌํ๋ฉด(์๋ฌ๊ฐ๋๋ฉด) ๋ก๊ทธ์ธ์ ์๋ํ๋๋ก ํ๋ค.
++) ์ด์ ๊ฒ์๋ฌผ๋ก ์ฌ๋ฆฐ์ ์ด ์์ง๋ง ๊นํ๋ธ ๋ก๊ทธ์ธ๋ ์ ์ ํด ๋ณด์๋๋ฐ ํ์ด์ด๋ฒ ์ด์ค๋ก ์ฐ๋ํด๋ณธ ๊ฒฝํ์ ์์ด์ ๋์ค์ ๊ธฐํ๊ฐ ๋๋ค๋ฉด ํ๋ฒ ์๋ํด๋ณด์์ผ๊ฒ ๋คใ .ใ
'iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] xcode Vary for Traits (0) | 2023.03.28 |
---|---|
[iOS] ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด (Delegate Pattern) (0) | 2023.03.18 |
[iOS] ๋์์ฑ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ (Concurrency Problems) (0) | 2022.12.16 |
[iOS] ๋์คํจ์น ๊ทธ๋ฃน(Dispatch Group) (0) | 2022.12.13 |
[iOS] ๋์คํจ์นํ(GCD) ์ฌ์ฉ ์ ์ฃผ์ํด์ผํ ์ฌํญ (0) | 2022.12.11 |