2024/05 27

Django Access Token 재발급 API

토큰에는 두 종류- access token (유효기간 짧은, 인가용 token)- refresh token (유효기간 긴, access token 재발급용 token) 토큰 재발급 과정로그인 인증에 성공한 클라이언트는 Refresh Token과 Access Token 두 개를 서버로부터 받는다.클라이언트는 Refresh Token과 Access Token을 로컬에 저장해놓는다.클라이언트는 헤더에 Access Token을 넣고 API 통신을 한다. (Authorization)일정 기간이 지나 Access Token의 유효기간이 만료되었다.Access Token은 이제 유효하지 않으므로 권한이 없는 사용자가 된다.클라이언트로부터 유효기간이 지난 Access Token을 받은 서버는 401 (Unauthori..

web/django 2024.05.20

Django JWT 토큰 기반의 인증 방식 환경 세팅하기

로직 흐름회원가입 - 클라이언트는 회원가입에 필요한 정보를 request body에 담아서 보낸다. - 서버는 이를 받아서 DB에 저장하고, 해당 유저를 인증할 때 사용될 토큰(access, refresh)을 생성한 다음 이를 쿠키에 담아 보낸다. (보통 회원가입 하면 로그인까지 한 번에 되므로)- 클라이언트는 받은 토큰을 브라우저에 저장해 둔다. 회원가입이 완료된 유저의 로그인 - 클라이언트는 로그인에 필요한 정보를 body에 담아서 보낸다. - 서버는 이 정보를 바탕으로 DB에 접근하여 등록된 User가 있는지 확인하고, 있을 경우 유저 인증에 사용될 토큰(access, refresh)을 생성한 다음 쿠키에 담아 보낸다. - 클라이언트는 토큰을 브라우저에 저장해 둔다. 권한이 필요한 기타 작업들 - ..

web/django 2024.05.20

Django Cookie, Session, 그리고 JWT

Authentication(인증)- 사용자를 식별하는 프로세스 (누구인지 확인)- 회원가입 과정, 로그인 과정Authorization(인가)- 인증된 사용자에게 특정 리소스나 기능에 접근할 수 있는 권한이 있는지 확인하는 프로세스- 누구인지 확인이 완료된 사용자에게 '특정 작업 수행 권한'이 있는지 확인- 권한이 필요한 요청 (게시글 수정, 게시글 삭제) http 통신은 Connectionless (비연결성) + Stateless (무상태성) 을 가진다어딘가에 유저 상태 정보를 저장할 필요가 있음 => Cookie, Session, Token Cookie- 사용자가 웹사이트를 방문하고 이용할 때 사용자의 브라우저에 저장되는 작은 정보 조각- 공지 메세지 하루 안보기, 장바구니 담기 기능- 사용자의 PC에..

web/django 2024.05.20