: 간단하게 로그인 과정!, 등록된 회원인지 확인하는 과정
: 로그인 후, 인증 받은 유저가 특정 서비스에 접근할 수 있는 권한이 있는지 확인하는 과정
http의 무상태성, 비연결성 특징에도 불구하고 쿠키, 세션, 토큰이 있기에 로그인 상태가 계속 유지되고, 로그인 된 유저만 이용할 수 있는 서비스를 만들 수 있다.
* Origin(출처) : protocol + host + port
* Cross Origin Resource Sharing(CORS) : 다른 출처에 리소스 요청하는 것을 허용하는 정책
세션 : 사용자-서버 간의 연결이 활성화된 상태 (=인증이 유지되는 상태, ex) 세션이 종료되었습니다.)
로그인/회원가입 시 세션 인증
: 로그인 성공 → 서버에서 세션 생성 및 저장(key-value 형식) → 쿠키에 key(sessionId)를 담아서 브라우저에 응답
세션유지상태 : 서버에서 관리하는 세션 저장소에 회원 데이터가 있다.
세션만료상태 : 서버에서 관리하는 세션 저장소에 회원 데이터가 없다.
인가(Authorization) 필요한 API 요청/응답
: 서버는 인가가 필요한 API 요청을 받으면 클라이언트 쿠키에 들어 있는 sessionId를 세션 저장소에 조회하여 있으면 DB에 데이터를 조회하여 응답
한계점
확장성 문제 : 서버가 많아질 수록 세션 동기화 문제 발생
메모리 사용량 증가
상태유지 복잡성
보안문제
암호화 : 기밀성을 유지하는 보안 목적, 복호화된 key 필요
인코딩 : 데이터를 다른 형식으로 변환하여 전송 및 저장을 용이하게 하는 과정으로 데이터 처리 목적, 복호화된 key 필요
복호화할 때 secret key 유무에 따라 암호화, 인코딩된 인증정보로 나뉨)
누구 인가