인증
쉽게 설명해서 유저의 아이디와 비번을 확인하는 절차
비밀번호 어떻게 관리해야하는가?
우선적으로 법에 정해져있어서!( 보안규칙)
데이터베이스에 저장 시 개인정보를 해싱하여 복원할 수 없도록 함
암호화는 어떻게 할까?
단방향 해쉬란?
그런데 허점을 이용해서 가능한 경우의 수를 모두 해시값으로 만들어 판매하는 서비스도 존재한다.
rainbow Table이라고 부른다
bcrypt (Salting& key stretching 대표적 라이브러리)
salting: 실제 비밀번호 이외에 추가적으로 랜덤 데이터를 더해서 해시값을 계산하는 방법
key stretching: 단방향 해쉬값을 계산한 후 그 해쉬값을 또 또 해쉬하고 이를 계속 반복하는 것을 의미한다.
인가
사용자가 서버에 로그인하면 해당 사용자가 맞는지 확인하는 과정
서버는 사용자가 로그인 했을 경우, 로그인했다는 것을 어떻게 알 수 있을까?
-바로 headers에 메타 데이터를 보내서 확인한다.
-이 메타 정보를 바로 JSON web Token 일명 'JWT'라고 한다.
http의 특징은? 바로 request/response 요청과 응답. stateless한 성질(저장하지 않는 성질)
인증,인가 관련 다음에 꼭 읽어봐야 할 글 !
https://medium.com/datadriveninvestor/authentication-vs-authorization-716fea914d55