2025-01-26T02:15:33

This commit is contained in:
2025-01-26 02:15:33 +09:00
parent f43f6328c0
commit f867e689aa
22 changed files with 2702 additions and 213 deletions

31
doc/15_인증.md Normal file
View File

@@ -0,0 +1,31 @@
# 인증(Authentication)
인증은 사용자가 누구인지 확인하는 과정을 의미합니다.
일반적으로 로그인 과정을 통해 사용자 신원을 확인하며, 이후 세션을 통해 인증 상태를 유지합니다.
## 세션 기반 인증
* 서버에 세션 정보를 저장하고, 클라이언트는 세션 ID를 쿠키로 저장.
* 서버에서 세션 ID를 확인하여 사용자를 인증.
### 세션 기반 인증 흐름
1. 클라이언트가 로그인 요청을 보냄.
2. 서버는 사용자를 인증한 후 세션을 생성하고, 세션 ID를 쿠키로 설정하여 클라이언트에 반환.
3. 클라이언트는 이후 요청마다 해당 세션 ID를 쿠키에 포함하여 보냄.
4. 서버는 세션 ID를 기반으로 사용자를 인증.
## 토큰 기반 인증
* 사용자를 인증하면 **토큰(JWT)**을 생성하여 클라이언트에 전달.
* 클라이언트는 요청 시 토큰을 포함(Authorization 헤더)하여 인증.
### 토큰 기반 인증 흐름 (JWT)
1. 클라이언트가 로그인 요청을 보냄.
2. 서버는 사용자를 인증한 후 **JSON Web Token(JWT)**을 생성하여 클라이언트에 반환.
3. 클라이언트는 토큰을 로컬 저장소 또는 쿠키에 저장.
4. 이후 요청 시 토큰을 Authorization 헤더에 포함하여 서버에 전송.
## OAuth
* 서드파티 인증을 위한 표준 프로토콜.
* Google, Facebook, GitHub 등을 통한 로그인 방식.