OAUTH

Jiwon·2022년 1월 3일
0

HTTPS&SSL

목록 보기
7/7

OAUTH

아이디와 비밀번호를 직접 넘겨주지 않고
유저의 권한 중 넘겨주고 싶은 것만 설정해서 전달해주는 방법.

Resource Owner(유저) -> 브라우저
Resource Server(페이스북)
Client(스파르타코딩클럽) -> 역할군 명칭. 원래는 웹 서버이다.

신뢰하는 client에게 Resource Server가 access_token 이라는 것을 발급해서
client에게 전달한다.
-> 이를 코드 교환(code exchange)단계라고 한다.

  • authorization_code :
    client 와 Resource Server만 이용하는 비밀값

  • scope (범위) :
    어느 범위까지 가져올 것인지에 대한 설정

Refresh Token

  • access_token :
    수명이 있음.
    해당 리소스를 무제한 접근하는 권한을 주면 위험하기 때문.
    수명이 끝난 토큰을 가지고 요청하면 expired_token이라는 에러를 표시해 줌.

access_token은 매 요청시마다 함께 하는 토큰이여서
네트워크 상에서 유실될 가능성이 매우 높다.
즉, 토큰이 한 번 털리면 유저 데이터가 털린다.

보완하고자 수명시간을 짧게 두면 로그인을 자주 해야되는 불편한 상황 발생..

따라서, 매번 통신할 때 주고 받는 access_token은 유효기간을 짧게 두되,
access_token을 새롭게 받을 수 있는 refresh_token을 준다.

그러면 매번 통신할 때 털리는 access_token은 1시간만 유효하므로 그나마 안전하고,
새롭게 로그인하기 귀찮을 때는 refresh_token을 쓰면 된다! 라는 결론.

즉, refresh_token은 매 통신마다 보내는 것이 아니고
몰래 브라우저상에 숨겨 놓은 상태에서 access_token은 계속 쨉쨉이(?)로 던지는 방식


REST API키 -> client_id

Redirect URI -> 예전에 설정했던 코드를 돌려주는 것인 callback_url를 설정하는 것
본인이 만들 서버의 callback_url입력

본인이 만든 서버에서 authorization_code를 입력 받아서 코드 exchange를 통해서 access_token을 받아올 위치

카카오 로그인은 client_secret을 기본으로 설정해두지 않는다.

대신 선택으로 제공.

response_type=code
-> 코드라는 것은 authorization_code 방식을 사용한다는 것을 의미한다.

profile
과연 나는 ?

0개의 댓글