본문 바로가기
FrontEnd/Next.js

[Next.js] OAuth(2.0)를 통한 로그인 인증

by 위그든씨 2023. 1. 10.

1. OAuth란? 

  • Open standard for Authorization, Open Authorization
  • 권한 부여를 위한 공개된 인증 프로토콜 ( 접근 권한을 위임하는 개방형 표준 프로토콜 ) 
  • eg) SNS , Google, Github, Apple, kakao, Naver 등등
  •  

OAuth 예시

2. OAuth 의 구성 요소

이 4가지 요소가 상호작용하며 작동

  1. 자원 소유자 (Resource Owner) 
    • 접근 권한과 엑세스 권한에 대해서는 아래 작동 과정 그림을 보며 접목해보면 쉽게 이해 가능
    • eg) 깃헙 계정으로 로그인 할려는 사람
  2. 클라이언트 (Client)
    • eg) Velog 등 OAuth 로그인을 지원하는 애플리케이션
  3. 인가 서버 (Authorization Server)
    • 자원 소유자를 인증하는 과정을 통해 권한에 대한 유효성을 검증
    • 모든 검증 종료시 자원 서버에 접근하여 자원 요청 권한을 가질 수 있는 토큰을 발급하여 클라이언트에게 응답
    • eg) 깃헙 로그인 토큰을 발금하는 인가 서버 
  4. 자원 서버 ( Resource Server)
    • 자원 서버는 접근 권한이 있는 보호된 자원을 호스팅함
    • 경우에 따라 인가 서버와 자원 서버가 같은 서버일 수 있다.
    • Github API 서버

3. 작동과정 

  • 사용자가 클라이언트에 OAuth 권한을 부여하기 위해 인가 서버에 접근
  • 인가 서버에 적절한 인증 정보를 제공하여 클라이언트에 인가 코드 및 토큰 발급
  • 토큰을 통해 자원 서버에 접근 하여 클라이언트에서 필요한 자원에 접근

 

각 단계에서의 작동 과정의 자세한 설명 https://velog.io/@shyuuuuni

 

Github 로그인으로 알아보는 OAuth 작동방식

소셜 로그인, 이제 나도 좀 알자!

velog.io

[ 클라이언트 - 자원 서버 ] 자원 요청