🔥 학습목표
- OAuth를 사용하여 로그인을 구현할 수 있다.
- OAuth가 작동하는 방식을 설명할 수 있다.
🟩 OAuth란?
웹 서비스(Naver, Google 등)에서 사용자 인증을 해주고, 접근 권한에 대한 토큰을 발급한 후, 내 서버에서 로그인 되게 하는 것.
🟣 사용하는 이유
⬜ 언제?
- 앱 서비스 이용을 위해 로그인 할 때 사용된다.
⬜ 왜?
- 신규 회원가입/회원관리를 신경 쓰지 않아도 된다는 점에서 개발자가 편리하다.
- ID/Pwd를 별도로 기억하고 있지 않아도 된다.
- 유저의 정보가 검증되지 않은 App에 노출 될 일이 없다.
- 로그인 할 때, 인증 권한에 대한 허가를 유저에게 구해야 하기 때문에 더 안전하다.
🟩 OAuth 작동 메커니즘
🟣 OAuth의 주체
⬜ Resource Owner
- 로그인 하려는 사용자.
- Resource = 사용자 이름, 전화번호 등 정보
⬜ Application
- 로그인을 한 뒤 이용하려는 서비스
- 세분화 하여 Client와 Server로 나뉜다.
⬜ Resource & Authorization Server
- Resource Server - 사용자가 이미 사용 중인 서비스(Naver, Google 등)의 서버 중, 사용자의 정보를 저장하고 있는 서버
- Authorization Server - 인증을 담당하는 서버
🟣 인증 방식 종류
Grant Type : Authorization Server에서 Access Token을 받아오는 방식
⬜ Implicit Grant Type
- 기존 서비스에 로그인 되어있으면 새로운 서비스에 바로 액세스 토큰을 준다.
- 보안상 취약하다. 그래서 요즘은 잘 쓰지 않는다.
⬜ Authorization Code Grant Type
- Authorization Code를 사용한 인증 단계가 추가되었다.
- 원한다면 토큰을 App의 Client에게 노출시키지 않고 Server만 관리하도록 만들 수 있다.
└▶ 이는 OAuth 실습에서 다루도록 한다.
⬜ Refresh Token Grant Type
- 액세스 토큰이 만료되었을 때 리프레시 토큰을 사용해서 액세스 토큰을 받아올 수 있다.
🎁 자세한 요청&응답
🎁 페어 영탁님께 추천 받은 영상