인증과 인가
인증(Authentication) : 사용자가 누구인지 확인한다. 로그인 등.
인가(Authorization) : 작업의 권한이 있는지 확인한다. 로그인 후 마이페이지 접근 등.
HTTP : 데이터를 주고받기 위한 프로토콜(약속)이다.
특성
- 비연결성 : 응답 완료 후 연결을 끊는다.
- 무상태성 : 이전 데이터를 유지하지 않는다.
보완하기 위해 사용되는 방법
- 쿠키 : 클라이언트 측에서 상태 정보를 저장한다.
- 세션 : 서버 측에서 클라이언트의 상태 정보를 저장한다.
- 토큰: JWT라고 부른다. 복호화된 키는 서버에, 암호화된 키는 클라이언트쪽에 보관한다.
Http의 header에 넣어서 사용한다.
- 보통 하나만 쓰이지 않고 함께 쓰인다.
- HttpOnly 옵션을 적용한 경우 javascript를 통한 쿠키 접근을 막아 XSS 공격을 방지한다.
withCredential을 입력해야 데이터를 송수신 할 수 있다.
- 두가지 토큰을 사용하는 것이 일반적이다.
Access Token : 인증에 사용된다. Heap memory,에 저장된다.
Refresh Token : Access Token 발급에 사용된다. HttpOnly 쿠키에 저장된다.