Lined Notebook

로그인 #세션기반인증방식 : 개념 ★★★

by yjym33

세션 기반 인증 방식(Session-Based Authentication)은 웹 애플리케이션에서 사용자 인증을 관리하는 데 사용되는 일반적인 방법 중 하나입니다. 

이 방식은 사용자가 웹 애플리케이션에 로그인할 때 세션을 생성하고, 이 세션을 사용하여 사용자의 인증 상태를 유지합니다. 

세션 기반 인증 방식의 동작 과정:


로그인 프로세스:

사용자가 웹 애플리케이션에 로그인하면, 일반적으로 아이디와 비밀번호를 입력합니다.
서버는 입력된 아이디와 비밀번호를 검증하고, 인증이 성공하면 사용자를 식별할 수 있는 고유한 식별자(일반적으로 세션 ID)를 생성합니다.


세션 생성:

서버는 사용자의 브라우저로 세션 ID를 쿠키나 URL 매개변수 등을 통해 전송합니다.
브라우저는 이 세션 ID를 저장하고 나중에 서버로부터의 요청에 해당 ID를 함께 전송합니다.


세션 저장:

서버는 세션 ID를 사용하여 사용자의 세션 데이터를 서버에 저장합니다. 이 데이터에는 사용자의 인증 상태와 세션에 관련된 다양한 정보가 포함될 수 있습니다.


인증 유지:

사용자가 로그인 상태에서 웹 애플리케이션을 사용하는 동안, 브라우저는 세션 ID를 계속 서버로 보냅니다.
서버는 세션 ID를 사용하여 사용자를 식별하고, 해당 세션에 저장된 정보를 기반으로 사용자의 요청을 처리합니다.


로그아웃 또는 세션 만료:

사용자가 로그아웃하거나 세션 만료 시간(일반적으로 설정 가능)이 경과하면, 해당 세션은 무효화됩니다.
브라우저의 세션 ID도 삭제되어 사용자는 다시 로그인해야 합니다.

 


세션 기반 인증 방식의 장점:


보안: 사용자 정보는 서버에 안전하게 저장되므로 브라우저에서 직접 조작할 수 없습니다.


세션 관리: 서버는 사용자의 로그인 상태를 쉽게 관리하고 로그아웃, 세션 만료 등의 작업을 수행할 수 있습니다.


유연성: 세션 데이터에 사용자 지정 정보를 저장하여 사용자 경험을 개선할 수 있습니다.

 


세션 기반 인증 방식의 단점:


서버 부하: 세션 데이터를 저장하고 관리하기 위해 서버 자원이 필요하므로 대규모 웹 애플리케이션에서 서버 부하가 발생할 수 있습니다.


확장 어려움: 사용자 증가 시 서버 확장이 어려울 수 있으며, 로드 밸런싱 등의 관리가 필요합니다.


상태 저장: 사용자의 상태를 서버에 저장해야 하므로, 상태 정보가 변경될 때마다 서버와의 통신이 필요하게 됩니다.

블로그의 정보

생각보다 실천을

yjym33

활동하기