์ธ์ฆ ์ฝ๋ ๋ถ์ฌ๋ ์ก์ธ์ค ํ ํฐ์ ์ป๊ณ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์ ์ธ์ฆ ์ปจํ ์คํธ์์ API๋ฅผ ํตํด ๋ณดํธ๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋๋ก ๊ถํ์ ๋ถ์ฌํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์์ ํ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ ์์๋ ์ธ์ฆ์ ์ํด ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ ๊ณ ํ์ค ํ๋กํ ์ฝ์ธ OAuth 2.0 ํ๋ ์์ํฌ์ ์ผ๋ถ๋ก, ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ณดํธํ๊ณ ์๊ฒฉ ์ฆ๋ช ์ ๋ถํ์ํ๊ฒ ๊ณต์ ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ํ OAuth 2.0์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ, ๋ฆฌ์์ค ์์ ์(์ฌ์ฉ์), ๋ฆฌ์์ค ์๋ฒ ๋ฐ ๊ถํ ๋ถ์ฌ ์๋ฒ ๊ฐ์ ์ญํ ์ ๋ถ๋ฆฌํ์ฌ ์ ์ฌ์ ์ธ ์ทจ์ฝ์ ์ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค. ์ธ์ฆ ์ฝ๋ ๋ถ์ฌ๋ ํด๋ผ์ด์ธํธ๊ฐ ํด๋ผ์ด์ธํธ ๋น๋ฐ์ ์์ ํ๊ฒ ์ ์ฅํ ์ ์๋ ๊ธฐ๋ฐ ํด๋ผ์ด์ธํธ(์: ์น ์ ํ๋ฆฌ์ผ์ด์ )์ ํนํ ์ ํฉํฉ๋๋ค.
์ธ์ฆ ์ฝ๋ ๋ถ์ฌ ์๋ ๋ฐฉ์:
- ํด๋ผ์ด์ธํธ๋ ๊ถํ ๋ถ์ฌ ์์ฒญ์ ์์ํ๊ธฐ ์ํด ๋ฆฌ์์ค ์์ ์๋ฅผ ๊ถํ ๋ถ์ฌ ์๋ฒ๋ก ์๋ดํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์๋ณ, ์์ฒญ๋ ๋ฒ์(๊ถํ) ๋ฐ ๋ฆฌ๋๋ ์ URI์ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ํฌํจํ์ฌ ์ฌ์ฉ์๋ฅผ ์ธ์ฆ ์๋ฒ์ URL๋ก ๋ฆฌ๋๋ ์ ํจ์ผ๋ก์จ ์ํ๋ฉ๋๋ค.
- ๊ถํ ๋ถ์ฌ ์๋ฒ๋ ์ฌ์ฉ์์ ์๊ฒฉ ์ฆ๋ช ์ ์์ฒญํ๊ฑฐ๋ ๊ธฐ์กด ์ธ์ฆ ์ธ์ ์ ์ฌ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ์์ ์๋ฅผ ์ธ์ฆํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ์ฉ์์๊ฒ ๋์ ํ๋ฉด์ ํ์ํ์ฌ ์ฌ์ฉ์๊ฐ ๋ณดํธ๋ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค์ ๋ํ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์น์ธํ๊ฑฐ๋ ๊ฑฐ๋ถํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋์ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋๋ฉด ์ธ์ฆ ์๋ฒ๋ ์ธ์ฆ ์ฝ๋๋ฅผ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ก ์ถ๊ฐํ์ฌ ์ฌ์ฉ์๋ฅผ ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ํ ๋ฆฌ๋๋ ์ URI๋ก ๋ค์ ๋ฆฌ๋๋ ์ ํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ ์๋ฒ์ ๋ณด์ ๋ฐฑ์ฑ๋ ์์ฒญ์ ํ์ฌ ์ก์ธ์ค ํ ํฐ๊ณผ ์ ํ์ ์๋ก ๊ณ ์นจ ํ ํฐ์ ๋ํ ์ธ์ฆ ์ฝ๋๋ฅผ ๊ตํํฉ๋๋ค. ์ด ์์ฒญ์๋ ํด๋ผ์ด์ธํธ์ ID์ ๋น๋ฐ, ์ธ์ฆ ์ฝ๋, ์๋ ๋ฆฌ๋๋ ์ URI๊ฐ ํฌํจ๋ฉ๋๋ค.
- ์ธ์ฆ ์๋ฒ๋ ์์ฒญ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ์ฌ ์ ๊ณต๋ ์ธ์ฆ ์ฝ๋๊ฐ ๋ง๋ฃ๋์ง ์์๋์ง, ์ด์ ์ ์ฌ์ฉ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค. ๋ํ ์ด ์์ฒญ์ ์ ์ถ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ์๋ ๋ฆฌ๋๋ ์ URI๋ฅผ ํ์ธํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ์์ด๋ฉด ์๋ฒ๋ ์์ฒญ๋ ์ก์ธ์ค ๋ฐ ์๋ก ๊ณ ์นจ ํ ํฐ์ ๋ฐํํฉ๋๋ค.
- ์ด์ ํด๋ผ์ด์ธํธ๋ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ์๋ฒ์์ ๋ณดํธ๋๋ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค. ํ ํฐ์ ์ผ๋ฐ์ ์ผ๋ก ์์ฒญ์ Authorization ํค๋์ ์ ๋ฌ์ ํ ํฐ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์์๋ ์๊ฐ์ ์ผ๋ก ์์ฑ๋ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ํตํด Authorization Code Grant ์ค์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฅผ ํตํด AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ๋ถ OAuth 2.0 ํธํ API์ ์์ ํ๊ฒ ์ํธ ์์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์ํํ๊ณ ์์ ํ ํ๊ฒฝ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ํ AppMaster ์์ ์์ฑ๋ REST API ๋ฐ WSS endpoints OAuth 2.0 ํ๋กํ ์ฝ์ ์ ์ ํ ๊ตฌํ์ ๋ณด์ฅํฉ๋๋ค.
์ธ์ฆ ์ฝ๋ ๋ถ์ฌ๋ ๊ฐ์ฅ ์์ ํ OAuth 2.0 ๋ถ์ฌ ์ ํ์ด๋ฉฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฆฌ ์ฌ์ฉ๋์ง๋ง ํ์ํ ๋ณด์ ์กฐ์น๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํ์์ ์ธ ๋ณด์ ์ธก๋ฉด์ ํ ํฐ ๊ตํ ์ค์ ์ฌ์ฉ๋๋ ํด๋ผ์ด์ธํธ์ ๋น๋ฐ์ ๋ณดํธํ๋ ๊ฒ์ ๋๋ค. ๊ณต์ฉ ํด๋ผ์ด์ธํธ(์: ๋ชจ๋ฐ์ผ ๋ฐ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ )์ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ ์ ์๋ ๊ฒฝ์ฐ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ณดํธํ๊ธฐ ์ํด PKCE(์ฝ๋ ๊ตํ์ฉ ์ฆ๋ช ํค) ํ์ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ๊ณ ๋ํฅ์ ๋ฐ๋ฅด๋ฉด ์์๋ ์ธ์ฆ์ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ OAuth 2.0 ๋ฐ ์ธ์ฆ ์ฝ๋ ๋ถ์ฌ ์ฑํ์ด ๊พธ์คํ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. AppMaster ์ no-code ํ๋ซํผ์ ์ฌ์ฉํ๋ฉด ์ธ์ฆ ์ฝ๋ ๋ถ์ฌ์ ๊ตฌํ ๋ฐ ๊ด๋ฆฌ๊ฐ ๋์ฑ ์ฌ์์ ธ ๊ธฐ์ ์ด ๋ณด์ ์๊ตฌ ์ฌํญ์ ํจ์จ์ ์ผ๋ก ์ถฉ์กฑํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๋ฉฐ ํ์ฅ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์ธ์ฆ ์ฝ๋ ๋ถ์ฌ๋ ์์๋ ์ธ์ฆ์ ํตํด ๋ณดํธ๋ ๋ฆฌ์์ค์ ๋ํ ์์ ํ ์ก์ธ์ค๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ OAuth 2.0 ํ๋ ์์ํฌ์ ํ์ ๋ถ๋ถ์ ๋๋ค. ์ฌ์ฉ์ ์ธ์ฆ์ ์ํ ๊ฐ๋ ฅํ ์ ๊ณ ํ์ค ์๋ฃจ์ ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. AppMasterno-code ํ๋ซํผ์ ์ด๋ฌํ ์ธ์ฆ ์ฒด๊ณ๋ฅผ ๊ตฌํํ๊ณ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ฒ ๋จ์ํํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๋ ์์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๋น์ฉ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๋ง๋ค ์ ์๋๋ก ํฉ๋๋ค.