-
Notifications
You must be signed in to change notification settings - Fork 1
๐ OAuth
๊ตฌ๊ธ, ํ์ด์ค๋ถ, ํธ์ํฐ์ ๊ฐ์ ๋ค์ํ ํ๋ซํผ์ ํน์ ํ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํด ์ 3์ ํด๋ผ์ด์ธํธ(์ฐ๋ฆฌ ์๋น์ค)๊ฐ ์ฌ์ฉ์์ ์ ๊ทผ ๊ถํ์ ์์๋ฐ์ ์ ์๋ ํ์ค ํ๋กํ ์ฝ์ด๋ค.
์ฆ, ์ฐ๋ฆฌ ์๋น์ค ์ ์ ์ ํ์ฌ ํ๋ซํผ ์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ํด ํ์ฌ ํ๋ซํผ์ผ๋ก๋ถํฐ ์ ๊ทผ ๊ถํ์ ์์๋ฐ๋ ๊ฒ์ด๋ค.
- ๋ค์ํ ํด๋ผ์ด์ธํธ ๊ธฐ๊ธฐ๋ค์ ์ธ์ฆ์ ๊ฐ๋จํ ํ ์ ์๋ค.
- ์ง์ ID, Password๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฐ๋ฆฌ ์๋น์ค์ ํ์์ผ๋ก ๋ง๋ค ์๋ ์๊ฒ ์ง๋ง, ์ด๋ฐ ๋ฐฉ์์ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๋ณด์ ์ธก๋ฉด์์ ๋ถ๋ด์ค๋ฌ์ธ ์ ์๋ค.
๋ฆฌ์์ค ์์ ์์ด๋ค. ์ฌ์ฉ์์ ์ ๋ณด์ ์๊ฒฉ์ ์น์ธํ๋ ์ฃผ์ฒด์ด๋ค.
- ํด๋ผ์ด์ธํธ๋ฅผ ์ธ์ฆํ๊ณ
- ์ธ์ฆ์ด ์๋ฃ๋๋ฉด ๋์๋ฅผ ํตํด ๊ถํ ํ๋ ์๊ฒฉ์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ถ์ฌํ๋ค.
๊ตฌ๊ธ, ํ์ด์ค๋ถ, ๋ค์ด๋ฒ ๊ฐ์ ํ๋ซํผ์ ํด๋นํ๋ค.
Resource Owner์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ณ ์ ์ ๊ทผ์ ์์ฒญํ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ค. Resource Server์ Authorization Server์ ์ ์ฅ์์ Client์ด๊ธฐ ๋๋ฌธ์ Client๋ผ๋ ์ด๋ฆ์ ๊ฐ๊ฒ ๋์๋ค.
ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ๊ณ ์๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํด๋นํ๋ค.
Resource Owner์ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด ์๋ ์๋ฒ์ด๋ค.
๊ถํ ์๋ฒ์ด๋ค. ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ฅผ ์ํํ๋ ์๋ฒ๋ก, ํด๋ผ์ด์ธํธ์ ์ ๊ทผ ์๊ฒฉ์ ํ์ธํ๊ณ access token์ ๋ฐ๊ธํ์ฌ ๊ถํ์ ๋ถ์ฌํ๋ค.

ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์ ๋์ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผ์ ์์ฒญํ ๋ ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ค. OAuth 2.0์์ ๊ฐ์ฅ ๋ง์ด ๋ณผ ์ ์๋ ์ ํ์ด๋ค.
access token์ ์ป๊ธฐ ์ํ ์ธ์ฆ ์ฝ๋๋ฅผ ๊ตํํ๋ ๋จ๊ณ๊ฐ ์์ด ๋ณด์์ ํจ๊ณผ์ ์ด๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ๊ถํ ์๋ฒ์์ ์ ๊ณตํ๋ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ์์ฒญํด ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์ ์ถ๋ ฅํ๋ค.
- ์ด ํ์ด์ง๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๋ฉด ๊ถํ ์๋ฒ๋ redirect_url๋ก ์ธ๊ฐ ์ฝ๋๋ฅผ ์ ๋ฌํ๋ค.
- ์ธ๊ฐ ์ฝ๋๋ก ๊ถํ ์๋ฒ์ access token์ ์์ฒญํ๋ค.

์๊ฒฉ ์ฆ๋ช ์ ์์ ํ๊ฒ ์ ์ฅํ๊ธฐ ํ๋ ํด๋ผ์ด์ธํธ(JS ๋ฑ ์คํฌ๋ฆฝํธ ์ธ์ด)๋ฅผ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ์๊ฒ ์ต์ ํ๋ ๋ฐฉ์์ด๋ค.
์ด์ ๋ฐฉ์์์ ์ธ์ฆ ์ฝ๋(code) ๊ตํ ๊ณผ์ ์ ๋บ ๋ฐฉ์์ผ๋ก, ๋ฐ๋ก access token์ ๋ฐ๊ธ๋ฐ๋๋ค. access token์ด ๋ฐ๋ก ์ ๋ฌ๋๋ฏ๋ก ๋ ธ์ถ ์ํ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ง๋ฃ ๊ธฐ๊ฐ์ ์งง๊ฒ ์ค์ ํ์ฌ ์ ๋ฌ๋๋ค.
- ๐ฟ ๊ทธ๋ผ์ด๋ ๋ฃฐ
- ๐ฎ ์ปค๋ฐ ์ปจ๋ฒค์
- ๐ฅ๏ธ ์ฝ๋ฉ ์ปจ๋ฒค์
- ๐ณ ๋ธ๋์น ์ ๋ต
- ๐ ์ด์ ๊ด๋ฆฌ