- 인증?
회원가입, 로그인을 의미
- 소비자 입장에서 인증은 왜 필요하나?
자신이 맞음을 알려야 하기 때문
- 개발자 입장에서 인증은 왜 필요한가?
어떤 소비자가 어떤 서비스를 어떻게 이용하는지 알고 추적이 가능하도록 하기 위해
- 인증이 필요한 것은?
아이디, 이메일주소, 비밀번호 등(이 중에서 비밀번호가 제일 중요!)
백엔드 개발자가 데이터베이스에 저장 시 개인 정보를 암호화해서 저장
통신 시에는 SSL을 적용하여 암호화(사이트 URL옆에 자물쇠가 걸려 있음)
- 인가
사용자가 서비스에 로그인하면 해당 사용자가 맞는지 확인하는 과정
백엔드가 주는 토큰을 프론트엔드는 브라우저에 저장
JSON Web Token
헤더.내용.서명
헤더에는 토큰의 타입과 해시알고리즘 정보가 들어간다.
내용에는 만료시간을 나타내는 공개 클레임, 클라이언트와 서버간 협의하에 사용하는 비공개 클레임을 조합해서 BASE64로 인코딩하여 두번째 요소로 위치.
서명에는 JWT가 원본 그대로라는 것을 확인할 때 사용하는 부분. 누가 토큰을 만들었는지?