인증 흐름 순서
- 사용자가 클라이언트에 로그인을 요청
- 클라이언트는 사용자를 OAuth 서비스로 리다이렉트
- 사용자가 OAuth 서버에서 인증을 하면, 인증 서버는 클라이언트에게 Authorization Code를 Redirect URL에 쿼리 파라미터 형태로 포함시켜 리다이렉트
- 클라이언트는 Authorization Code와 함께 Client Secret을 사용하여 서버에 Access Token을 요청
- 서버는 해당 Authorization Code를 가지고 인증 서버로부터 검증 후에 Access Token을 발급 받아 클라이언트에게 전달
- 클라이언트는 Access Token을 사용하여 사용자를 대신해 서버에 자원을 요청
- 우리가 사용하게 될 Authentication 과정
- 사용자가 로그인 버튼 클릭
- 현대차 홈페이지로 리다이렉트하여 로그인
- 로그인 성공 시, 인증 코드(code) 발급 및 클라이언트 사이트로 리다이렉트
- 클라이언트 사이트에서 인증 코드를 사용하여 리소스 서버에 토큰 요청
- 토큰 발급 받은 후, 사용자를 클라이언트 사이트의 홈 화면으로 이동
Client Secret
client_secret
은 OAuth 등록 과정에서 클라이언트에게 부여되는 비밀 키
Token 요청
- Authorization Code를 사용하여 Access Token을 요청할 때는 일반적으로 POST 요청을 사용
- 요청 본문에는
grant_type
, code
, redirect_uri
, client_id
, client_secret
을 포함
Redirect URI
- OAuth 인증 과정 중 인증 코드를 리다이렉트하기 위한 URL
- 토큰을 요청할 때, 이전에 인증 코드를 받았던
redirect_uri
와 일치하는지 서버가 검증
Access Token 응답
- 리소스 서버가 유효한 코드로 인증을 성공하면, 클라이언트에게
access_token
, token_type
, expires_in
, refresh_token
을 포함한 JSON 객체를 반환