โ Resource Owner์ ๋ก๊ทธ์ธ์ Client์ธ ์ฐ๋ฆฌ ์๋น์ค๊ฐ Resource Server์์ ํ ํฐ์ ๋ฐ์์ ๋ก๊ทธ์ธ ํ ์ ์๊ฒ ํ๋ค.
Application ๋ฑ๋ก
์น์ธ ๊ณผ์
์ฌ์ฉ์์ ๋ก๊ทธ์ธ ๋ฒํผ ํด๋ฆญ โ GET https://github.com/login/oauth/authorize?client_id=๋ฐ์์์ด๋
์ด๋
๋ก๊ทธ์ธ ์ํ๊ฐ ์๋๋ผ๋ฉด, Resource Server๋ ๋ก๊ทธ์ธ ํ ์ ์๊ฒ ํ๋ค.
์ฐ๋ฆฌ๊ฐ ์ค์ ํ scope์ ๋ํด์ ํ์ฉํ๋๋ก ํ๋ค.
resource server๊ฐ authorization code๋ฅผ resource owner์๊ฒ ์ ๋ฌํ๊ณ , ์ด๋ฅผ resource owner๊ฐ client์๊ฒ ์ ๋ฌํฉ๋๋ค.
GET http://localhost:3000/login?code=๋ฐ์์ค๋ ์ฝ๋
์ด์ , client๊ฐ resource server์๊ฒ ์์ ์ด ๊ฐ์ง ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค. (authrozation code, redirect url, client secret, client id)
-POST https://github.com/login/oauth/access_token?client_id=ํด๋ผ์ด์ธํธ์์ด๋&client_secret=ํด๋ผ์ด์ธํธ๋น๋ฐ๋ฒํธ&code=authorization code
resource server๋ client๊ฐ ๋ณด๋ธ ์ฝ๋๋ฅผ ํ์ธํ๊ณ , access token์ ์ค๋๋ค.
์ด์ ์ด API๋ฅผ ์ด์ฉํด Resource Owner์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.