: JSON Web Token
: 사용자 정보를 담고 있는 토큰
: 사용자 인증 및 권한 부여에 사용
: 웹사이트에 자신의 정보(비밀번호는 해시화)를 제공 => 데이터 베이스에 저장
Login 과정
: 이메일과 비밀번호 입력 => 데이터베이스 내 해당 이메일을 찾아 비밀번호 해시와 일치하는 지 확인 => 일치하면 JWT 생성 => 사용자에게 JWT 전송
JWT 사용
: 사용자가 서버에 요청을 보낼 때마다 HTTP 요청 헤더에 포함되어 서버에 전송 => JWT 검증 및 요청 처리
: 서버는 사용자의 세션 유지 필요x => stateless 서버의 부하를 줄임
Access Token
: 사용자 인증 및 권한 확인
: 사용자 아이디, 유효기간, 권한 범위 등 포함
: 유효기간이 짧음 => 보안
Refresh Token
: Access Token이 만료되었을 때, 새로운 Access Token 을 발급하기 위한 토큰
: 유효기간이 비교적 길다 => 서비스를 계속 이용할 수 있도록
Local Storage
1) 영구적인 저장소: 브라우저 캐시를 지우지 않는 이상 계속 남아있음
2) 도메인 별로 저장: 동일한 도메인에서만 접근 가능
3) 용량: 대부분의 용량은 5MB ~ 10MB
Session Storage
1) 일시적인 저장소 : 창을 닫으면 데이터가 삭제
2) 탭별로 저장 : 세션 스토리지는 브라우저 탭별로 저장
3) 용량 : 대부분의 용량은 5MB~ 10MB
암호화
import hashlib
def hash_password(password):
return hashlib.sha256(password.encode()).hexdigest()