TIL - 20 : 인증과 인가
in Study Log on Today I learned

- 인증
- 유저의 identification을 확인하는 절차
- 인증에는 ID와 Password가 필요함 Password가 중요
- Password는 단방향 해쉬로 암호화 (SSL 적용 -> HTTPS)
- 단방향 해쉬의 단점 -> 같은 단어엔 항상 같은 해쉬
- Salting, Key Stretching 으로 보완
- 대표적인 라이브러리 bcrypt
- hash 결과값에 salting 값과 hash 값 및 반복횟수를 같이 보관
- 인가
- 해당 유저가 request에 해당 권한이 있는지 확인하는 절차
- HTTP 의 특징은 원래 stateless
- 메타정보(JSON Web Token, JWT)를 headers에 보내서 확인
- JWT의 개념
- 헤더,내용,서명 으로 구분 세가지 요소를 ‘.’ 으로 구분
- 헤더, 내용 : BASE64로 인코딩 (암호화가 아님)
- 서명 : 암호화
- 헤더,내용,서명 으로 구분 세가지 요소를 ‘.’ 으로 구분
- 프론트엔드 단에서는 SSL을 통해 평문을 암호화