다른 서비스의 회원 정보를 안전하게 사용하기 위한 방법이라고 생각하면 된다. 여기에서 안전하게의 주체는, 회원 정보를 가지고 있는 주체, 우리의 고객이다. 즉, 우리의 고객이 안전하게 다른 서비스의 정보를 우리 서비스에 건네주기 위한 방법이다.

고객이 자신의 네이버 아이디/비밀번호를 우리 서비스에 알려주지 않아도, 네이버에 있는 고객의 정보를 우리 서비스에서 안전하게 사용하기 위한 방법이다.

Access Token

OAuth의 핵심은 Access Token이다. 이 Access Token은 임의의 문자열 값인데, 이 문자열의 정체는 이 토큰을 발급해준 서비스만 알 수 있다. 물론 JWT의 경우 기본정보가 Base64인코딩으로 되어 있어서 정보를 살펴볼 수 있긴 하지만, 어쨌든 기본적으로 Access Token은 토큰을 발급해준 서비스가 알고 있다고 생각하면 된다.

이 Access Token을 이용해, 이 토큰값과 관련된 고객의 정보를 우리는 해당 서비스에 요청할 수 있다. 해당 서비스는 이 토큰을 검증하고, 발급된게 맞다면 해당 고객의 정보를 넘겨준다.

즉 Access Token의 존재 자체가 고객이 정보를 넘겨주는 것을 동의함의 징표라고 할 수 있다.

Access Token을 넘겨주면 네이버는 정보를 넘겨준다. 참 쉽다. 이걸 위해서 우린 OAuth를 사용한다.

Access Token을 받는 방법

access token을 받는 방법은 웹사이트(네이버,카카오,구글 등)가 건네줘야 된다.

네이버는 어떻게 특정 고객의 Access Token을 발급해줄까? 특정 고객이 네이버 회원임을 인증해야 한다. 그러면 어떻게 인증하면 될까? 그 고객이 네이버에 로그인을 하면 된다.

네이버 로그인, 카카오 로그인 버튼을 클릭하면 네이버 로그인 페이지로 이동하고, 카카오 로그인 페이지로 이동한다. 그 고객임을 인증하기 위해서다.

고객이 네이버에 로그인을 했다. 네이버 서버에서는 아이디/비밀번호를 확인하고 해당 고객이 네이버 회원임을 확인했다. 그러면 이제 이 고객과 관련된 Access Token을 발급한다.

이 토큰을 우리 서비스에서 받을 수 있는 방법은 여러가지가 있지만 대표적으로

Redirect가 있다.

HTTP에는 리다이렉트 메시지가 존재한다. 이 메시지는 참으로 간단하다. 서버에서 클라이언트보고 어디로 가라고 지정해주는게 바로 리다이렉트다.

리다이렉트를 이용하면, 고객이 가만히 있어도 웹브라우저가 알아서 페이지를 이동한다. 이를 이용하면 고객이 직접 페이지를 이동할 필요가 없어진다.