공부하는 중

세션과 토큰, 그리고 OAuth

scarlet0star 2023. 5. 1. 09:04

로그인을 하는 방식은 내가 알고 있기로는 크게 3가지 방법이 있는데, 그 세가지는 제목과 같다. 각각의 특징과 장단점을 아래와 같이 정리한다.

 

1. 세션 (Session):
세션은 웹 사이트 방문 시 생성되는 상태 정보로, 사용자의 인증 정보를 서버에 저장한다. 이를 통해 사용자가 웹 사이트 내에서 이동할 때마다 인증을 요구하지 않고 원활한 서비스를 제공한다. 세션은 고유한 ID를 가지고 있으며, 이 ID는 클라이언트 측 쿠키에 저장된다.

2. 토큰 (Token):
토큰은 인증 정보를 포함한 문자열로, 사용자가 인증을 완료한 후(예: 로그인) 서버에 의해 생성된다. 사용자는 토큰을 통해 애플리케이션의 보호된 자원에 액세스할 수 있다. 토큰은 상태를 유지하지 않으며 일반적으로 클라이언트 측(예: 브라우저의 로컬 스토리지)에 저장된다. 토큰 기반 인증은 RESTful API와 같은 상태가 없는(stateless) 애플리케이션에 적합하다.

3. OAuth 로그인:
OAuth는 오픈 표준 인증 프로토콜로, 사용자가 인터넷 서비스의 자격 증명을 공유하여 다른 애플리케이션에서 해당 서비스의 기능을 사용할 수 있게 한다. OAuth 로그인을 통해 사용자는 구글, 페이스북 등의 계정을 사용하여 다른 웹 사이트에 로그인할 수 있다.

OAuth 로그인의 장점은 사용자가 별도의 계정을 생성할 필요가 없으며, 인증 과정이 간소화되어 사용자 경험이 향상된다. 이 프로토콜은 애플리케이션에 권한을 부여하므로, 사용자는 애플리케이션에 제한된 데이터에 대한 접근 권한을 부여할 수 있다. OAuth를 사용하는 웹 애플리케이션은 사용자의 자격 증명을 직접 저장하지 않기 때문에 보안 측면에서도 이점이 있다.