Oauth 2.0의 매커니즘을 이해하려면 우선 용어부터 정리해야합니다.
클라이언트가 할 일은 크게 2가지가 있습니다.
Client는 Resource Server에 당신네 서비스를 사용할거야! 라고 등록을 해야 합니다.
그럼 Resource Server는 client Id와 client secret을 Client에게 발급해줍니다.
이제 Client는 client Id와 client secret를 가지고 Resource Server에 접근 할 수 있습니다.
1. 로그인이 안되어 있으면 로그인 요청을 하게 하고
접근 승인을 하게되면 Resource Server가 Client에게 정보를 주게됩니다.
이 정보를 Code라고 부릅니다.
Client는 Code를 통해 Resource Server에 접근해 Resource Owner의 정보를 사용 할 수 있습니다.
하지만 아직 끝난게 아닙니다.
Oauth가 복잡한 이유는 2번에 걸쳐 검증을 하기 때문입니다.
Client는 Resource Server로부터 Code를 받게되면
Code, CilentId, Cilent Sercret과 함께 다시 Resource Server에게 정보를 달라고 요청합니다.
이때 Resource Server는 Client로부터 받은 Code, CilentId, Cilent Sercret갖고
요청을 한 Client가 Resource Owner가 승인한 Client인지 확인합니다.
즉 Code는 정보를 주는게 아닌 해당 정보를 볼 수 있는 키를 준것입니다.
위 과정이 모두 일치한다면 Resource Server는 Access Token을 Client에게 넘겨줍니다.
Client는 Access Token을 이용해 Resource Server에 접속 할 수 있습니다.
Oauth의 원리를 알아보았습니다.
실제로 복잡한 과정이기에 더 깊게 공부를 해봐야 할 것 같습니다.