새롭게 Oauth라는 키워드를 알게되어 한번 잘 정리하고
나중에 포트폴리오 회원가입/로그인 기능에도 적용해보자는 생각으로 포스팅을 남긴다.
(생활코딩 egoing님의 OAuth 2.0 강의 - https://opentutorials.org/module/3668
를 정리한 글 입니다.(egoing님 감사합니다!))
먼저 예시를 설명하자면 User가 Mine(opentutorials.org) 서비스를 활용하면서
Their(Google, Facebook)의 User Data나 API를 사용해야 하는 상황이다.
여기에서 가장 단순한 방법은 Mine에 ID, PW를 제공하고
이를 Their에 전달하여 마치 User가 Their에도 로그인 한 것처럼 사용 방법이 있다.
그러나 이 방법은 크게 2가지가 문제 될 수 있다.
- "Mine을 어떻게 믿고 내 ID/PW를 입력하는가?"
만약 Mine이 내 포트폴리오와 같은 비공식적인(?) 사이트라면
거기에 다른 사이트도 쓰는 공통 ID/PW를 제공하는 것은 매우 위험하다.- Mine 입장에서도 ID/PW와 같은 민감정보를 사용/보관하는 것은 책임이 따른다.
이러한 문제를 해결하기 위해 등장한 것이 OAuth이다.
OAuth는 'Mine'과 'Their' 간에
더 안전하고 덜 부담스럽게 상호작용 할 수 있도록 돕는 표준 Protocol이다.
결국 OAuth에서 중요한 것은 ID/PW외에 User를 식별할
'다른 정보'를 사용하는 것이고 이러한 것이 AccessToken이라 할 수 있다.
AccessToken은 또 다른 장점은 전체 기능을 Open하는 ID/PW에 비해
발급할 때 일부 기능 만을 Open하는 것으로 설정 할 수 있다는 것이다.(보안성 향상)
그러면 다음 글에서는 구체적으로 AccessToken을 어떻게 얻어내고 또 사용하는지 알아보자!