AuthCode
OAuth 2.0 Token Endpoint
Authorization Code ํ๋ฆ

Access Token Response
Successful Response
์ธ๊ฐ ์๋ฒ๋ ์ก์ธ์ค ํ ํฐ๊ณผ (์ ํ์ ์ผ๋ก) ๋ฆฌํ๋ ์ ํ ํฐ์ ๋ฐ๊ธํ๋ฉฐ, ๋ค์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ํฐํฐ ๋ฐ๋์ ์ถ๊ฐํ์ฌ 200 OK ์ํ ์ฝ๋๋ฅผ ๊ฐ์ง HTTP ์๋ต์ผ๋ก ์๋ต์ ๊ตฌ์ฑํ๋ค.
access_token, ํ์
์ธ๊ฐ ์๋ฒ์์ ๋ฐ๊ธํ ์ก์ธ์ค ํ ํฐ ๋ฌธ์์ด
token_type, ํ์
ํ ํฐ ์ ํ์ ์ผ๋ฐ์ ์ผ๋ก
Bearer๋ฌธ์์ด
expires_in, ๊ถ์ฅ
ํ ํฐ์ ๋ง๋ฃ์๊ฐ
refresh_token, ์ ํ ์ฌํญ
์ก์ธ์ค ํ ํฐ์ด ๋ง๋ฃ๋๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ์ก์ธ์ค ํ ํฐ์ ์ป๋ ๋ฐ ์ฌ์ฉํ ์ ์๋
refresh_token์ ๋ฐํํ๋ ๊ฒ์ด ์ ์ฉํ๋ค.implicit๊ถํ ๋ถ์ฌ๋ก ๋ฐํ๋ ํ ํฐ์refresh_token์ ๋ฐํํ ์ ์๋ค.
scope, ์ ํ ์ฌํญ
์ฌ์ฉ์๊ฐ ๋ถ์ฌํ ๋ฒ์๊ฐ ์ฑ์ด ์์ฒญํ ๋ฒ์์ ๋์ผํ ๊ฒฝ์ฐ ์ ํ์ฌํญ
์ฌ์ฉ์๊ฐ ๋ถ์ฌํ ๋ฒ์๊ฐ ์์ฒญ๋ ๋ฒ์์ ๋ค๋ฅธ ๊ฒฝ์ฐ ํ์ํ๋ค.

Unsuccessful Response
error
invalid_request์์ฒญ์ ๋งค๊ฐ๋ณ์๊ฐ ๋๋ฝ๋๊ฑฐ๋, ์ง์๋์ง ์๋ ๋งค๊ฐ๋ณ์๋ก ์๋ฒ๊ฐ ์์ฒญ์ ์งํํ ์ ์์
invalid_client์์ฒญ์ ์๋ชป๋
client_id๋๋client_secret์ด ํฌํจ๋ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ ์ธ์ฆ์ ์คํจ(HTTP 401 ์๋ต)
invalid_grant์ธ์ฆ ์ฝ๋๊ฐ ์ ํจํ์ง ์๊ฑฐ๋ ๋ง๋ฃ๋จ
๊ถํ ๋ถ์ฌ์ ์ ๊ณต๋
redirect_uri์ ์ก์ธ์ค ํ ํฐ ์์ฒญ์ ์ ๊ณต๋redirect_uri๊ฐ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ
invalid_scope๋ฒ์๋ฅผ ํฌํจํ๋ ์ก์ธ์ค ํ ํฐ ์์ฒญ์ ๊ฒฝ์ฐ ์์ฒญ์ ์ ํจํ์ง ์์ ๋ฒ์๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ
unauthorized_client์ด ํด๋ผ์ด์ธํธ๋ ์์ฒญ๋ ๊ถํ ๋ถ์ฌ ์์ฒญ์ ์ฌ์ฉํ ๊ถํ์ด ์์
RegisteredCleitn์ ์ ์ํ์ง ์์ ๊ถํ ๋ถ์ฌ ์ ํ์ผ๋ก ์์ฒญํ ๊ฒฝ์ฐ
unsupported_grant_type๊ถํ ๋ถ์ฌ ์๋ฒ๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ์น์ธ ์ ํ์ ์์ฒญํ๋ ๊ฒฝ์ฐ
์ฝ๋ ํ๋ฆ
1. ์ก์ธ์ค ํ ํฐ ์์ฒญ

ํด๋ผ์ด์ธํธ ์ธ์ฆ์ ๋ง์น๊ณ
AuthorizationFilter๋ฅผ ๊ฑฐ์ณOAuth2TokenEndpointFilter๋ก ์ด๋
2. OAuth2TokenEndpointFilter -> OAuth2AuthorizationCodeAuthenticationConverter

์์ฒญ ํ๋ผ๋ฏธํฐ์์ ํ์๋ก ํ์ํ ์ ๋ณด๋ค์ ์ด์ฉํด
OAuth2AuthorizationCodeAuthenticationToken์ ๋ฐํํ๋ค.
3. ProviderManager -> OAuth2AuthorizationCodeAuthenticationProvider

client_id,redirect_uri, ํ์ฑํ ์ํ ๋ฑ์ ํ์ธํ ๋ค ์ดํ ๋ก์ง์ผ๋ก ๋์ด๊ฐ ์ ์๋ค.

ํ ํฐ์ ๋ฐํํ ์ค๋น๋ฅผ ํ๋ค.

์ก์ธ์ค ํ ํฐ์ ๋ง๋ ๋ค.
DelegatingOAuth2TokenGenerator->JwtGenerator


์กฐ๊ฑด์ ๋ฐ๋ผ
refresh_token๊ณผid_token์ ์์ฑํ๋ค.

์์ ์ฝ๋๋ ๋ฌดํจํ ์ฒ๋ฆฌํ๊ณ ์ต์ข
OAuth2AccessTokenAuthenticationToken์ ๋ฐํํ๋ค.
4. OAuth2TokenEndpointFilter -> sendAccessTokenResponse()


Last updated