학습 목표
- 인증과 권한을 안전하게 나누기의 역할과 적용 조건을 설명할 수 있다.
- 익명·회원·소유자·관리자별 허용 행동을 표로 적으세요.
- 만료 토큰·위조 역할·타인 ID·로그아웃 후 요청을 확인하세요.
사전 지식
앞선 사용자·프로젝트·댓글 데이터 설계를 먼저 읽으면 용어를 이해하기 쉽습니다. 이미 아는 내용이면 이 장부터 시작해도 됩니다.
개념 이해
로그인은 신원을, 권한은 행동의 허용 범위를 정합니다. 관리자 버튼을 숨기는 것은 화면 편의일 뿐 보안 장치가 아닙니다.
회원가입·로그인·OAuth
이메일 가입과 외부 계정 인증은 다른 흐름입니다. OAuth 제공업체의 결과는 신뢰할 서버나 검증된 SDK로 확인하고 이메일이 같다고 임의로 병합하지 않습니다.
세션·토큰·JWT
세션은 로그인 맥락, 토큰은 그 맥락을 증명하는 자격입니다. JWT 내용이 읽힌다고 서명이 검증된 것은 아닙니다. 서버는 만료·서명·발급자·대상까지 검증하는 SDK를 사용합니다.
사용자 역할과 관리자
클라이언트가 보낸 role=admin을 믿지 않습니다. 검증된 역할 정보와 자원 소유권을 함께 검사합니다.
리소스 소유권·Rules
사용자 UID와 저장된 ownerId가 일치하는지 서버 또는 데이터 접근 정책에서 확인합니다. 생성·조회·수정·삭제의 규칙은 각각 다를 수 있습니다.
API Key·Secret·사용자 데이터
공개 앱 식별자와 권한을 주는 비밀키를 구분합니다. 키는 서버 비밀 저장소에서 관리하고 로그·응답·브라우저 번들에 유출하지 않습니다. 필요한 개인정보만 수집합니다.
실제 사용 사례
게시글 삭제 API는 로그인 여부만 검사하면 부족합니다. 작성자와 관리자만 삭제할 수 있게 하고 타인 토큰으로 요청했을 때 서버가 거절하는지 확인하세요.
단계별 실습
실습은 운영 서비스가 아닌 별도 연습 프로젝트에서 진행하세요. 기존 파일이 있다면 변경 전 기록을 남깁니다.
- 익명·회원·소유자·관리자별 허용 행동을 표로 적으세요.
- 선택한 인증 SDK로 토큰 검증 흐름을 연결하세요.
- 서버와 Rules에서 자원 소유권을 검증하세요.
- 만료 토큰·위조 역할·타인 ID·로그아웃 후 요청을 확인하세요.
코드와 프롬프트
아래 요청에서 대괄호 부분을 내 프로젝트에 맞게 바꾼 뒤 AI 도구에 전달하세요.
[인증 방식]의 신원 검증과 [자원] 소유권 검사를 구분해 구현해줘. 역할은 서버가 신뢰하는 출처에서만 읽고 위조·만료·타인 접근·로그아웃을 확인해줘. 비밀키와 사용자 정보가 응답이나 로그에 남지 않게 해줘.자주 발생하는 문제와 해결
| 문제와 원인 | 해결 방법과 확인 기준 |
|---|---|
| JWT 본문을 읽고 인증 완료로 판단함 | 검증 SDK를 사용하고 검증 실패는 거절합니다. |
| 관리자 UI만 숨김 | 직접 API/DB 요청도 권한 없으면 거절해야 합니다. |
핵심 요약
- 권한은 신뢰할 서버 또는 데이터 정책이 판단합니다.
- UI 제한은 서버 검증을 대신하지 않습니다.
완료 확인
참고자료
확인 기준일: 2026-10-20. 요금·사용 한도·제품 기능·설정 경로는 변경될 수 있으므로 작업 직전 공식 문서와 설치 버전을 확인하세요.