westagram에 추가하기
복원이 불가능한 단방향 해쉬함수는 암호학적 용도로 사용한다.
(해쉬: 빨리 검색하고 빨리 찾기위해 만든 자료형)
ex. '1234' > 03ac674216f3e15~~~
단점: 똑같은 비밀번호를 해싱하면 똑같은 값이 나와 유추가능
=> 단순해쉬값이 해킹에 쉽게 노출되기 때문에 salting이 생김
<-> 양방향: 원본을 확인할 수 있는 값(주민번호 등)
사용자가 서버에 로그인하면 해당 사용자가 맞는지 확인하는 과정이 인가
로그인한 사람이 추가적이 서비스를 사용했을 때 권한이 있는 사용자인지 확인
http의 특징? request/response 요청과 응답 & stateless한 성질
서버는 사용자가 로그인 했을 경우, 로그인을 했다는 사실을 어떻게 알 수 있나? 바로 headers에 메타데이터를 보내서 확인
(이 메타정보: json web token)
요청 1의 응답 1에서 200 ok와 token 발행
요청 2는 발행받은 token과 함께 요청 보냄
(token은 로그인이 선행되어야 하는 다른 기능이 요청될 때 token을 사용)
헤더-내용- 서명 (증명장치)
정보: 토큰 타입과 해시알고리즘 정보가 들어감
해더의 내용은 base64방식으로 인코딩해서 JWT의 가장 첫 부분에 기록
예시: {"alg": "HS256", "typ": "JWT"}
내용에는 exp와 같이 만료시간을 나타내는 공개 클레임
클라이언트와 서버간 협의하에 사용하는 비공개 클레임
어떤 유저인지 알려줌
예시: {"user-id": 1, "exp": 1539517391}
JWT가 원본 그대로라는 것을 확인할 때 사용하는 부분
시그니쳐는 암호화함
주의할 점: header와 payload는 인코딩한 것이므로 개인정보를 담아서는 안 됌.