oAuth - 4. Resource Owner의 승인
등록을 하게 되면 resource server와 client 둘다 client ID와 client secret 그리고 redirect URL이라는 3가지 핵심정보를
알게된다. redirect URL에 해당하는 페이지를 구현해놓고 준비 해놓고 있어야한다.
resource server가 가지고 있는 기능이 a,b,c,d 4개이고 client는 b와c 두개만 필요하다면 모든 기능에 대한 인증을 받는것이 아니라 최소한의 인증만 받는다.
이런상황일때 resource owner은 우리(client)의 application에 접속을 할것이다.
근데 그 접속을 하는 과정에서 우리가 resource server를 사용해야하는 상황이 있다라고 가정 (ex. facebook에 글을 게시, google calender에 날짜를 기록) 이런 작업을 해야 한다면 우리는 resource owner에게 이런 화면을 보여주게될것이다.
혹은 이런 설명의 화면을 보여줄 것이다. -> "지금 귀하께서 하시려는 일은 facebook의 어떠한 기능이 필요한데 그 기능을 쓰시기 위해서는 facebook의 인증을 거쳐야 합니다." 뭐가 되든 사용자의 동의가 있어야 그 다음 과정으로 진행될것.
이런 버튼들을 클린하는것은 동의를 하겠다라는 것인데
이 버튼은 위 사진의 client 아래 있는 링크를 만들어 주면 되는것이다.
resource owner가 server로 저 주소로 접속을 하게 되면 server는 owner가 현재 login 되어있는지를 봐서 안되어있으면
아래처럼 login을 하라는 창을 보여준다.
그리고 resource owner가 login에 성공했다면 server는 그때서야 위 링크에
client id 값과 같은 client id 값이 있는지 확인 그리고 자신이 가지고 있는 client id: 1 의 redirect URL이 요청의 redirect URL(위 링크) 값과 같은지 확인해서 다르면 작업 끝내버리고 같으면 아래 사진 처럼 resource owner에게 scope에 해당하는 권한을 client에게 부여할것인지 확인하는 메세지 전송하게된다.
어떠한 것들을 어떤 client가 요청하고 있다 허용할것인가?
허용버튼을 누르면 허용했다는 정보가 server로 전송이되고 server는 이런 정보(user id:1은 scope: b,c에대한 작업을 허용 하는것에 동의 하였다.)를 수집하게된다.
- 출처 opentutorials.org 생활코딩 egoing님