APP DEVELOPMENT TERM
세션·토큰
로그인 상태와 요청 권한을 이어주는 값
세션은 여러 요청에 걸쳐 같은 사용자의 로그인 상태를 이어가는 방식이고, 토큰은 그 사용자나 허용된 접근을 증명하기 위해 요청에 사용하는 값입니다.
30초 이해
세션·토큰은 한 번 로그인한 사용자를 다음 화면과 요청에서도 같은 사람으로 안전하게 확인하기 위한 장치입니다
HTTP 요청은 기본적으로 앞선 요청을 기억하지 않으므로 로그인 뒤 예약 목록을 볼 때도 누가 요청했는지 다시 확인할 정보가 필요합니다. 서버 세션 식별자나 서명된 토큰 같은 방식을 사용해 로그인 상태와 권한을 이어갑니다.
세션과 토큰은 완전히 반대되는 한 가지 선택지가 아니며 시스템에 따라 함께 쓰일 수 있습니다. 모든 토큰이 JWT인 것도 아니고 JWT 내용이 자동으로 암호화되는 것도 아니므로 저장 위치, 만료, 갱신, 철회와 유출 대응을 구체적으로 정해야 합니다.
한 장으로 이해
로그인 뒤 세션·토큰으로 사용자를 확인하는 과정
자격 정보를 확인해 로그인 상태를 만들고 이후 요청마다 값의 유효성과 권한을 확인한 뒤 종료합니다.
- 01
로그인 확인
아이디·소셜 계정 등으로 사용자의 신원을 확인합니다.
- 02
상태 발급
세션 식별자나 제한된 토큰을 안전한 방식으로 발급합니다.
- 03
요청마다 검증
유효기간·서명·세션 상태와 필요한 권한을 확인합니다.
- 04
갱신·종료
만료, 로그아웃, 비밀번호 변경과 탈취 시 접근을 끊습니다.
로그인 유지는 오래 접속하게 만드는 기능이 아니라 매 요청에서 사용자와 권한을 확인하고 필요할 때 접근을 끝낼 수 있게 하는 보안 설계입니다.
언제 사용하는 개념인가요?
로그인 상태를 유지할 때
화면을 이동하거나 앱을 다시 열어도 허용된 기간에 사용자를 확인합니다.
API 접근을 제한할 때
요청에 담긴 세션·토큰을 검증해 사용자와 관리자 권한을 구분합니다.
계정 보안을 운영할 때
로그아웃, 만료, 비밀번호 변경, 기기 분실과 의심스러운 접근에 대응합니다.
왜 중요한가요?
요청한 사용자를 구분합니다
예약·결제·개인정보가 다른 사람에게 보이거나 변경되지 않도록 매 요청의 주체를 확인합니다.
편의성과 보안의 시간을 조정합니다
지나치게 짧으면 자주 로그인해야 하고 너무 길면 유출된 상태가 오래 사용될 수 있어 기능별 기준이 필요합니다.
접근을 끝낼 방법을 제공합니다
로그아웃·철회·비밀번호 변경과 관리자 조치가 기존 세션과 토큰에 어떻게 반영될지 정해야 합니다.
실제 상황 예시
클래스 예약 앱의 로그인 상태를 설계한다면
일반 회원과 관리자의 위험이 다르므로 지속 시간과 재확인 조건을 나눕니다.
로그인 뒤 기본 흐름
- 안전한 쿠키·저장 방식 선택
- 요청마다 유효성과 권한 확인
- 만료 전후 안내와 다시 로그인
- 로그아웃 시 현재 상태 종료
위험 상황의 처리
- 비밀번호 변경 시 기존 접근 종료
- 관리자 중요 행동 전 재확인
- 여러 기기 로그인 조회·해제
- 탈취 의심 로그와 강제 철회
회원 편의를 위해 로그인 기간을 정하더라도 결제·관리자 변경처럼 중요한 행동은 다시 확인하는 기준이 필요합니다.
자주 하는 오해
“토큰은 모두 JWT다”
토큰은 더 넓은 개념이며 무작위 식별자나 다른 형식도 사용할 수 있습니다. 시스템이 채택한 방식과 검증 규칙을 확인해야 합니다.
“JWT 안의 내용은 암호화되어 보이지 않는다”
일반적인 서명형 JWT의 내용은 읽을 수 있으므로 비밀번호나 불필요한 개인정보를 넣지 않아야 합니다.
“화면에서 로그아웃하면 모든 접근이 즉시 끝난다”
서버 세션과 토큰의 철회·만료 방식에 따라 다릅니다. 앱 저장값 삭제와 서버 측 종료를 함께 설계해야 합니다.
우리 서비스에 적용할 때 확인하세요
- 1세션·토큰을 브라우저와 앱 어디에 어떤 방식으로 보관하나요?
- 2유효기간과 갱신 조건이 사용자 역할과 위험에 맞나요?
- 3로그아웃·비밀번호 변경·탈퇴 시 기존 접근이 종료되나요?
- 4관리자와 결제 같은 중요 행동에서 다시 확인하나요?
- 5유출 의심 시 특정 기기나 전체 토큰을 철회할 수 있나요?
공식 참고
서비스 기준은 공식 문서에서 다시 확인하세요
다음 자료
이해한 내용을 바로 적용해보세요
로그인과 권한의 차이를 설명하는 인증·인가, 외부 권한을 위임하는 OAuth와 요청을 전달하는 HTTP·HTTPS를 이어서 확인하세요.
로그인이 되는지만 보지 말고 만료·갱신·철회·탈취까지 확인하세요
역할과 행동의 위험에 맞춰 세션·토큰의 보관과 종료 기준을 설계해야 합니다.
