토큰을 기반으로 외부 인증 중개서버로 사용자 인증 처리를 맡김! 네이버나 카카오 계정으로 로그인하는 것과 같음.
이미 사용자 정보를 가지고 있는 웹 서비스에서 사용자의 인증을 대신해주고, 접근 권한에 대한 토큰을 발급한다.
OAuth 용어
- Resource Owner: 사용자이며 정보 제공자
- Client: Resource Owner를 대신하여 보호된 리소스에 액세스하는 애플리케이션
- Local Server: Client의 요청을 수락하고 응답할 수 있는 서버
- Resource Server: 사용자의 정보를 저장하고 있는 서버
- Authorization Server: 인증을 담당하고 있는 서버. Access Token을 발급하는 인증 서버임
- Authorization Grant: Client가 Access Token을 얻는 방법.
Authorization Code Grant Type
,Refresh Token Grant Type
- Authorization Code: Authorization Grant의 한 타입으로 Access Token을 발급받기 위한 Code
- Access Token: 보호된 리소스에 액세스하는 데 사용되는 인증 토큰. 이 Access Token으로 Resource Server에 접근할 수 있다.
- Refresh Token: 발급받은 Access Token이 만료되면 Refresh Token을 통해 새로운 Access Token을 받급함
Authorization Code Grant Type
Refresh Token Grant Type
Authorization Code Grant Type으로 Access Token을 발급받은 후 Access Token이 만료된 경우, Refresh Token으로 새로운 Access Token을 생성한다.
Local server에서 Auth Server에 refresh token을 이용해 새로운 access token을 요청하면 auth server에서 새로운 access token을 전달한다.
이렇게 사용자와의 추가 상호 작용 없이 계속 유효한 액세스 토큰을 가질 수 있다.