OAuth는 구글, 페이스북, 트위터와 같은 다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제 3자 클라이언트가 사용자의 접근 권한을 위임받을 수 있는 인증 표준 프로토콜을 말합니다.
기존의 클라이언트-서버 모델의 문제점
OAuth는 클라이언트가 사용자에 의해 제어되고 리소스 서버에 의해 호스트되는 리소스에 대한 접근 권한을 요청합니다.
클라이언트의 redirect URL에 대한 CSRF 공격은 공격자가 자신의 authorization code나 access token을 삽입하여 클라이언트가 사용자가 아니라 공격지의 자원을 사용하도록 합니다. (예: 공격자의 보호된 자원에 피해자의 은행 계좌 정보를 저장함)
인증 서버, 인증 endpoint, 클라이언트 redirection endpoint는 미흡하거나 변조되어 open redirector로 작동할 수 있습니다.
로그인이 안 되어 있다면, 해당 플랫폼의 로그인 창이 뜹니다.
로그인이 되어 있다면, Access Token 응답이 오기까지 로그인 대기 화면으로 이동합니다.
로그인 대기 화면에 응답값이 오면, access token을 상태관리 라이브러리의 전역 상태에 저장합니다.