Spring 숙련
- 인증과 인가
- 인증의 방식
2-1. 쿠키-세션 방식의 인증
- 사용자가 로그인 요청을 보냄
- 서버는 DB의 유저 테이블에서 아이디와 비밀번호를 대조함
- 정보가 일치한다면 인증을 통과한 것으로 보고 세션 저장소에 해당 유저가 로그인 되었다는 정보 추가
- 세션 저장소에서 유저의 정보와 관련 없는 난수, session-id를 발급
- 서버는 로그인 요청 응답으로 session-id를 반환
- 클라이언트는 session-id를 쿠키에 보관, 앞으로의 요청마다 세션아이디를 같이 보냄 (주로 HTTP header)
- 클라이언트의 요청에서 쿠키를 발견했다면 서버는 세션 저장소에서 쿠키를 검증
- 만약 유저정보를 받아왔다면 이 사용자는 로그인이 되어있는 상태, 로그인 된 유저에 따른 응답을 내어줌
2-2. JWT 기반 인증
- 사용자가 로그인 요청을 보냄
- 서버는 DB의 유저 테이블에서 아이디와 비밀번호를 대조함
- 정보가 일치한다면 인증을 통과한 것으로 보고 유저의 정보를 JWT로 암호화 해서 내어줌
- 서버는 로그인 요청의 응답으로 jwt 토큰을 반환
- 클라이언트는 그 토큰을 저장소에 보관하고 앞으로의 요청마다 토큰을 같이 보냄
- 클라이언트의 요청에서 토큰을 발견했다면 서버는 토큰을 검증
- 로그인 된 유저에 따른 응답을 내어줌