Daily/TIL(Today I Leared)

210416_TIL(OAuth)

Judaeng 2021. 4. 19. 00:55

✅OAuth Sprint

Github를 통한 소셜 로그인 인증 방식을 구현했다.

인증은 깃 헙이 해주고, 내 서버는 접근 권한에 대한 관리만 하면 됐다.

약간 인증은 깃헙이 하고, 접근 권한은 내 서버가 하고 이 원리를 이해하는 것이 제일 중요한 부분이었다.

이 부분은 AccessToken, RefreshToken이 왜 나눠져 있는지 알 수 있는 부분이기도 했다.

OAuth 인증 방법은 예전에 앱을 만들어볼 때도 구현해봤지만, 지금 이렇게 만들어보니 또 새로운 느낌이었다.

구글, 카카오 등으로 로그인하는데, 나는 버튼 한 번만 누르면 로그인이 되어버리니 얼마나 간편한가

이 간편한 원리(구조)를 배울 수 있었던 시간이었다.

나중에 더 간편한 Firebase 같은 플랫폼을 사용할 때에도 OAuth의 원리를 알고 사용할 수 있을 것 같아 좋다.

아래 gif는 클릭해서 봐주세요😅

OAuth Sprint

🍒Remember


✅Authentication Authorization 차이점

인증( Authentication ) : 방문자가 자신이 회사 건물에 들어갈 수 있는지 확인받는 과정이다.

본인이 회사 건물에 등록되어 있는 정직원일 수도 있고, 누군가로 인해 인증받을 수 도 있다.

 

인가, 권한 부여( Authorization ) : 방문자가 회사 건물에 방문했을 때, 허가된 공간에만 접근 가능하다.

개인마다 건물 내 허가된 공간이 다르다.

관리자라면 건물내 다양한 공간에 대한 접근 권한이 있을 것이다.

반면에 방문자일 경우, 허용된 공간에만 접근 가능하다.

이런 접근 권한을 관리하는 것이 인가, 권한 부여이다.

 

✅OAuth에서 꼭 알아야 할 용어

  • Resource Owner : 액세스 중인 리소스의 유저입니다. 김코딩의 구글 계정을 이용하여 App에 로그인을 할 경우, 이 때 Resource owner은 김코딩이 됩니다.
  • Client : Resource owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램입니다. 클라이언트는 서버, 데스크탑, 모바일 또는 기타 장치에서 호스팅할 수 있습니다.
  • Resource server : client의 요청을 수락하고 응답할 수 있는 서버입니다.
  • Authorization server : Resource server가 액세스 토큰을 발급받는 서버입니다. 즉 클라이언트 및 리소스 소유자를 성공적으로 인증한 후 액세스 토큰을 발급하는 서버를 말합니다.
  • Authorization grant : 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명의 유형입니다.
  • Authorization code : access token을 발급받기 전에 필요한 code 입니다. client ID로 이 code를 받아온 후, client secret과 code를 이용해 Access token 을 받아옵니다.
  • Access token : 보호된 리소스에 액세스하는 데 사용되는 credentials입니다. Authorization code와 client secret을 이용해 받아온 이 Access token으로 이제 resource server에 접근을 할 수 있습니다.
  • Scope : scope는 토큰의 권한을 정의합니다. 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위입니다.

🍒More Study


✅Advanced Web Hiring 준비🤮

깃헙 응용프로그램 만들기 홈페이지