32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# 인증(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 등을 통한 로그인 방식.
|
|
|
|
|
|
|
|
|