패스트캠퍼스의 'Javascript 코딩테스트 131개 예제 & CS지식으로 끝내기' 강의를 듣고 정리한 내용입니다.
내가 만든 서비스를 사용하는 유저의 입장으로서 다양한 편의성이 높은 기능을 제공하기 위해서 효과적으로 사용할 수 있다.
Google 로그인 기능
을 떠올리면 간단사용자가 서버에게 Google 아이디와 패스워드를 알려주어야 하는 경우
1. Google 로그인 요청(데이터 : Google 계정 정보)
2. 사용자의 Google 계정 로그인
3. 사용자 정보 얻기
4. 로그인 성공 응답
👉🏻 Google 계정 정보가 그대로 노출될 수 있다는 위험이 있다. 즉, 안전하지 않은 방법!
사용자가 설정한 권한에 대해서만 Google 정보에 접근
할 수 있도록 하려면 👉🏻 Access Token을 이용!구성 요소 | 설명 |
---|---|
Resource Owner | - 특정한 서비스를 사용하려고 하는 사용자 - 대부분 개인정보(Resource)의 소유자(개인)을 의미 |
Client | - 특정한 개인 혹은 회사가 만든 서비스를 의미한다. - 일반적인 웹/앱 서버를 의미하지만, Client라고 부른다. - 그 이유는 Resource Server (Google, Facebook 등) 등의 입장에서는 Client이기 때문이다. |
Resource Server | - 사용자의 개인정보를 가지고 있는 서버(Google, Facebook 등)를 의미한다. - Client는 Access Token을 Resource Server에 보내서 사용자의 개인정보를 얻는다. |
Authorization Server | - 실질적으로 권한 부여 기능을 담당하는 서버다. - 사용자는 자신의 SNS 계정 정보(ID, PW)를 넘겨 Authorization Code를 받는다. - Client는 사용자로부터 받은 Authorization Code를 넘겨 Access Token을 받는다. |