OAuth 에 대하여(4)

김하은·2022년 12월 10일
2

Project-Study

목록 보기
4/7
post-thumbnail

Resource Server 가 Client 를 승인하고 나서

  1. Client 가 Resource Owner 에게 Authorization code 값을 전달 받음
  2. Client 가 authorization_code 값과 함께, 제일 중요한 외부에 노출 되지 않는 client_secret과 함께 Resource Server 에 주소를 전달 (이전 글 참조)

🎈3. Access Token 발급 (OAuth 목적 이기도 함)🎈

Resource Server 는 authorization_code를 통해서 이미 인증을 했기 때문에,
authorization_code 값을 삭제한다. 삭제해야
다시 인증을 하지 않는다.
이후에 Resource Server 는 Access Token 을 발급한다. 그리고
Access Token 의 값을 Client 에 응답을 해준다.
client 는 토큰의 값을 내부적으로 저장 (db, 파일 등등)

client 가 토큰의 값에 접근을 하게 되면, Resource Server 는
토큰의 값을 보고 토큰의 값에 맞는 user의 정보를 파악 하여,
해당 user에 대해 권한이 열려 있는 유효한 기능(scope) 을 동작하게 한다.


🎈4.Access Token 을 활용해서 Resource Server를 조작🎈

Resource Server를 조작하기 위해서는
API (Application Programming Interface) 의 방식을 이용해야 한다.

client 는 server 를 이용하여 어떠한 일을 하려하고 , Resource Server를 조작할수 있는 중간 역할을 API 가 한다.

ex) google calendar 를 리소스 서버로 제어 하고 싶다면 , google calendar api페이지에 나와있는 api url 을 이용한다.
calendar list 페이지를 보이게 하고 싶다 하면 list api 이용

api 주소를 그대로 주소창에 적고 접속해 보면 해당 데이터가 보여진다.

로그인이 되어있지 않은 상태면 login Required 라는 로그인이 되어있지 않다는
정보가 뜬다.

🎇여기서 알수 있는 부분은
이 api는 인증이 필요하다라는 정보를 알수가 있다.
바로 OAuth 즉 Access Token을 통해서 데이터를 가져올수 있다.

google api access token oauth 를 검색해보면 나와있는 레퍼런스 들 중에
사용하는 방법이 나와있다.

Calling Google APIs 라는 부분에 보면
두가지 방법이 나와있다 .
엑세스 토큰을 쿼리 파라미터로 보내는 방법
Authorization: Bearer http header로 보내는 방법 이다.

보통은 표준화 된 후자의 방법을 많이 쓴다.
(뒤에 파라미터를 붙이는 방식은 시스템에서 제공되지 않을수 있음)

HTTP GET examples 를 보면
?access_token=<access_token> 이런식으로 사용하라고 나와있다.

캘린더 리스트에 접근하는 api 주소 + access_token = (여기에 전달받은 access token의 값을 적어 넣어준다.)

그후 이 합친 주소를 주소창에 넣어주면 calendar list의 데이터 값들이 보인다.

Authorization: Bearer 를 사용하면 조금더 안전하게 서버와 통신할수 있다.

access token을 활용해서 api를 사용하는 방법을 알게 되었다.


profile
꾸준함을 이기는것은 없다

0개의 댓글