
๐ฉ๐ปโ๐ป ์ด ๊ฒ์๊ธ์ ์ค์ ๋ฐฉ๋ฒ๋ง์ ์ค๋ช ํฉ๋๋ค. supabase์ OAuth์ ๋์์ ๋ํด์๋ ํด๋น ๊ฒ์๊ธ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!
์ฌ์ฉ์๊ฐ Google ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๊ทธ์ธํ ์ ์๊ฒ ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Google Cloud Platform(๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ์ด์ง)์์ ๋ก๊ทธ์ธํ๊ณ ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.

API > ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.

OAuth ํด๋ผ์ด์ธํธ ID๋ฅผ ์์ฑํ๊ธฐ ์ ์ OAuth ๋์ ํ๋ฉด์ ์ค์ ํฉ๋๋ค.
๐ OAuth ๋์ ํ๋ฉด
- ์ฌ์ฉ์๊ฐ Google ๋ก๊ทธ์ธ์ ์๋ํ ๋ ํ์๋๋ ํ๋ฉด์์ ๋ณด๊ฒ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ณด๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฆ, ์ฌ์ฉ์ ์ง์ ์ด๋ฉ์ผ ๋ฑ์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋ฉ๋๋ค.
- ์ฌ์ฉ์์๊ฒ ์์ ์ด ์ธ์ฆํ๊ณ ์ ํ๋ ์๋น์ค๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ ์ฃผ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฒญํ๋ ๊ถํ์ ์น์ธํ๋๋ก ํฉ๋๋ค.


๋ค์ API > ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ํ์ด์ง๋ก ์ด๋ํ์ฌ OAuth ํด๋ผ์ด์ธํธ ID๋ฅผ ์์ฑํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ ํ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ค์ ํ๋ฉด ์๋๋ก ์ค์ ํ์ด์ง๊ฐ ๋์ต๋๋ค.
ํด๋ผ์ด์ธํธ ์ด๋ฆ์ ์ ๊ณ ์น์ธ๋ ๋ฆฌ๋๋ ์
URI์์ ์ถ๊ฐ ๋ฒํผ์ ๋๋ฆ
๋๋ค.

Supabase dashboard ์์ Authentication > Providers ์์ Google์ ํด๋ฆญํด ์ด๊ณ ํ์ฑํํฉ๋๋ค. Callback URL์ ๋ณต์ฌํ๊ณ ์น์ธ๋ ๋ฆฌ๋๋ ์
URI์ ๋ถ์ฌ๋ฃ์ด ์ฃผ๊ณ save ํฉ๋๋ค.

๐ Redirection URI
- ์ฌ์ฉ์๊ฐ Google ๋ก๊ทธ์ธ์ผ๋ก ์ธ์ฆ์ ์๋ฃํ ํ, Google์ ์ฌ์ฉ์๋ฅผ ์ด URI๋ก redirectionํฉ๋๋ค. ์ด ๋, ์ธ์ฆ์ฝ๋๊ฐ URI์ ํฌํจ๋์ด ์ ์ก๋๊ณ , ํด๋น ์ฝ๋๋ก ์ก์ธ์ค ํ ํฐ์ ์ป์ ์ ์์ต๋๋ค.
๐ *OAuth Client
- ๋ก๊ทธ์ธ ๊ณผ์ ์์ ์ ํ๋ฆฌ์ผ์ด์ (supabase)์ด Google์ ์ฌ์ฉ์ ์ธ์ฆ์ ์์ฒญํ ๋ ์ฌ์ฉํฉ๋๋ค.
- Client ID : ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- Client Secret (ํด๋ผ์ด์ธํธ ๋ณด์ ๋น๋ฐ๋ฒํธ) : ๋ณด์ ํต์ ์ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ์์ ํ๊ฒ ์ฌ์ฉ์ ์ธ์ฆ์ ์์ฒญํ๊ณ ์ธ์ฆ ์ฝ๋๋ฅผ ํ๋ํ๊ฒ ํฉ๋๋ค.

๐ ๋ฒ์(Scope) ์ค์
- ์ฌ์ฉ์ ๊ถํ ๋ถ์ฌ : ๋ฒ์(scope)์ค์ ์ ์ฌ์ฉ์๋ก๋ถํฐ Google ๊ณ์ ์ ์ ์ฅ๋ ํน์ ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ช ์์ ์ผ๋ก ์์ฒญํ๊ธฐ ์ํด์ ์ค์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ณดํธ : ๋ฒ์ ์ค์ ์ ํตํด ์ฌ์ฉ์๋ ํน์ ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ์ ํ์ฉํ๊ณ ๊ฑฐ๋ถํ์ฌ ์์ ์ ๊ฐ์ธ์ ๋ณด๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
API ๋ฐ ์๋น์ค > ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก ์ด๋ํด์ people์ ๊ฒ์ํด Google People API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.

OAuth ๋์ ํ๋ฉด์ผ๋ก ์ด๋ํด ๋ฒ์(scope) ์ค์ ์์ ๋ฒ์ ์ถ๊ฐ ๋๋ ์ญ์ ๋ฒํผ์ ํด๋ฆญํ๊ณ openID์ People API ๊ด๋ จ๋ ํํฐ๋ง์ ์ถ๊ฐํ๊ณ ์
๋ฐ์ดํธ ํฉ๋๋ค.
