
인증은 해당 유저가 실제 유저인지 인증하는 개념이다.
여러분의 스마트폰에 지문인식, 이용하는 사이트에 로그인 등과 같이 실제 그 유저가 맞는지를 확인하는 절차 이다.
인가는 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념이다. 예를 들어 관리자 페이지-관리자 권한 같은 것들을 들 수 있다.
우리가 인증과 인가를 헷갈려 하는 이유는 로그인만 생각한다.
우리가 자주 하는 로그인은 인증을 할 때(비밀번호 입력하고 제출 할 때)이고
회원/비회원 여부에 따라 다른 권한을 받는 것이 인가이다.
JWT(Json Web Token)란 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token 이다. 즉, 토큰의 한 종류라고 생각하면 된다.
일반적으로 쿠키 저장소를 사용하여 JWT를 저장한다.




장점
- 동시 접속자가 많을 때 서버 측 부하 낮춤
- Client, Sever 가 다른 도메인을 사용할 때
ex) 카카오OAuth2 로그인 시 JWT Token 사용단점
- 구현의 복잡도 증가
- JWT 에 담는 내용이 커질 수록 네트워크 비용 증가(클라이언트 -> 서버)
- 기 생성된 JWT 를 일부만 만료시킬 방법이 없음
- Secret key 유출 시 JWT 조작 가능
좋았던 점
JWT 회원 토큰을 발행해서 인증 인가하는 강의를 계속 보면서 코드 따라치기를 계속 하였다.
아쉬운 점
강의를 들었지만 이해를 하지 못하고 있다. 머릿속으로 어떻게 진행하는지 이해하는데 코드 하나하나가 이해가 안된다...
계속 강의를 끝까지 듣고 강의를 다시 돌려봐야겠다.