• Oauth 2.0 비전공자 쉽게 알아보자 2 :: 마이구미
    오픈 API 2016. 6. 14. 21:14
    반응형

    이번 글은 로그인 API와 프로필 조회 API를 살펴볼 것이다.

    예시는 네이버를 활용하자.

    시작하자.


    애플리케이션 생성



    네이버 개발자 센터에서 애플리케이션을 만들면 위 그림과 같이 Client ID, Secret 키를 얻을 수 있다.

    이 두 녀석이 꼭 필요하다. 로그인 API를 이용하기 위한 네이버에서 내려준 고유 식별키라고 생각하자.

    기본적인 셋팅은 생략하겠다.

    API 기본 정보



    이 두가지 api 요청 URL만 이용하면 로그인 뚝딱이다.

    먼저 로그인을 하기 위해서 네이버 로그인 페이지로 이동을 위하여 위 그림 설명에도 나와있듯이

    '네이버 아이디로 로그인 인증 요청'의 요청 URL을 이용한다.

    요청 URL의 요청 변수 명세에 따라 파라미터를 붙여주어 페이지 이동을 하게 한다.

    그렇다면 https://nid.naver.com/oauth2.0/authorize?client_id=ZtFYUWVDrtzPEzaHMGaH&response_type=code&redirect_uri=http%3A%2F%2Fhotehrud.cafe24.com%2FGiftcon%2Ftest.html&state=1465903844635 이처럼 이동한 페이지의 URL이 될 것이다.

    페이지 이동에 오류가 뜬다면 빠진 파라미터가 없는 지 확인하여 요청하면 된다.


    네이버 로그인 페이지


    위 그림처럼 나온다면 잘 순조롭게 되고 있는 것이다. 

    ('네이버 로그인으로 {본인이 만든 애플리케이션 이름} 서비스를 이용하실 수 있습니다.' )


    그렇다면 이제 아이디와 비밀번호를 입력한 후 로그인 버튼을 클릭 했을 경우를 알아보자.

    로그인 버튼을 클릭한 경우 기존 로그인 페이지 URL의 파라미터인 redirect_uri의 값으로 리턴된다.

    이 말은 즉 로그인 클릭 시 네이버 서버로 로그인을 요청한 것이다.

    이에 네이버 서버는 요청에 응답하기 위해 반환해주어야하는데 이를 redirect_uri의 값으로 리턴해주는 것이다.

    이 때 네이버 서버에서는 리턴될 redirect_uri에 인증코드(authorization code)를 내려주게 된다.

    그러므로 redirect_uri은 꼭 리턴되어 처리가 이루어질 URL로 설정해주어야한다.


    여기까지가 로그인 API를 이용한 것이다.

    그렇다면 이제 로그인한 계정의 프로필 정보를 가져와보자.


    위의 그림 두번째 요청 URL(접근 토큰 발급/갱신/삭제 요청) 을 이용하면 된다.(https://nid.naver.com/oauth2.0/toekn)

    여기서 이제 access_token이라는 것을 받아오게 된다.

    access_token을 통해 이제 다른 api들을 이용할 수 있게 되는 중요한 놈이다.

    똑같이 요청 변수 명세에 따라 파라미터를 추가한 후 보내주면 된다. 

    (grant_type, client_id, client_secret, code, state)

    별로 크게 어려울 것이 없다. 중요한 건 code이다.

    저 code 파라미터가 바로 로그인 API를 통해 얻어온 인증코드(authorization code)이다.

    파라미터를 넣고 요청 URL로 보낼 시 제대로 보내졌다면 access_token을 받아올 수 있을 것이다.


    이제 받아온 access_token을 가지고 프로필 정보를 얻어올 것이다.

    https://openapi.naver.com/v1/nid/me?access_token="받아온 액세스 토큰"

    위 URL로 요청하면 끝~. 프로필 정보들이 JSON 형태로 받아왔는 걸 확인할 수 있다.

    다른 API를 이용할 때에도 access_token을 가지고 이용한다고 보면된다.

    명세에 따라 요청 URL과 요청 파라미터가 다를 뿐이다.

    access_token에 대해서도 자세한 학습이 필요하다.

    하지만 이 글의 내용만 가지고도 충분히 api 이용에는 문제가 없다.

    실제 운영할 것이라면 자세한 학습이 필요하다.


    기본적인 예제가 필요하다면 알려주겠다.



    반응형

    댓글

Designed by Tistory.