OAuth 2.0?
- OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다
- 사용자가 가입된 서비스의 API에 접근하기 위해서는 사용자로부터 권한을 위임 받아야 합니다. 이 때 사용자의 패스워드 없이도 권한을 위임 받을 수 있는 방법
- 보통 Resource Server는 Access Token을 발급할 때 Refresh Token을 함께 발급. Client는 두 Token을 모두 저장해두고, Resource Server의 API를 호출할 때는 Access Token을 사용. Access Token이 만료되어 401 에러가 발생하면, Client는 보관 중이던 Refresh Token을 보내 새로운 Access Token을 발급받게한다.
OAuth 2.0 요소
| Client | OAuth 2.0을 사용해 Resource Server의 서드파티 기능을 구현할 애플리케이션. |
| Recource Owner | 서드파티 애플리케이션 (Google, Facebook, Kakao 등)에 이미 개인정보를 저장(회원가입)하고 있으며 Client가 제공하는 서비스를 이용하려는 사용자. |
| Resource Server | 사용자의 개인정보를 가지고있는 애플리케이션 (Google, Facebook, Kakao 등) 서버다. Client는 Token을 이 서버로 넘겨 개인정보를 응답 받을 수 있다. |
| Authorization Server | 권한을 부여(인증에 사용할 아이템을 제공주는)해주는 서버다. 사용자는 이 서버로 ID, PW를 넘겨 Authorization Code를 발급 받을 수 있다. Client는 이 서버로 Authorization Code을 넘겨 Token을 받급 받을 수 있다. |
OAuth 2.0 flow

참고자료
'Web > backend' 카테고리의 다른 글
| Node.js event-driven (0) | 2020.11.08 |
|---|---|
| 쿠키, 세션, 캐시 (0) | 2020.11.07 |
| HTTP vs HTTPS (0) | 2020.11.07 |
| MVC 패턴 (0) | 2020.10.30 |
| express (2) : 요청과 응답, 쿠키와 세션, REST API와 라우팅 (0) | 2020.10.24 |