인증은 유저의 identification을 확인하는 절차이며 인가는 유저의 request를 실행할 수 있는 권한이 있는지 확인하는 절차입니다.
https://pypi.org/project/bcrypt/
위 두개 기능이 추가된 것 중 가장 많이 쓰이는 해쉬 함수
request / response
가 stateless
로 이뤄진다. 유저가 로그인하고 이후 상태를 유지하려면 로그인 이후 request할 때마다 이미 로그인 했다라고 알려줘야 한다.
로그인에 성공하면 서버는 암호화된 유저정보(토큰)를 포함해 response 해주고 그 토큰은 브라우져(쿠키 또는 세션)에 저장된다. 그럼 이후 request마다 토큰을 첨부하며 서버는 토큰을 복호화해서 유저를 식별하고 로그인 상태를 유지할 수 있게 한다.
https://jwt.io/
유저 정보는 Json 데이터 형태로 암호화해서 사용한다.
JWT를 통해 유저를 식별하고 해당 페이지에서 유저의 권한이 있으면 응답하고 권한이 없으면 다른 코드를 보낸다.