김지팡의 저장소
stateless한 것의 장점이 대체 뭘까?
TIL 2023. 8. 31. 23:53

❗️ 이 글은 최대한 정확한 정보를 공유하고자 작성하는 글입니다. 하지만, 제 생각을 이해한 대로 옮겨 적는다는 점에서 다르거나 혹은 틀릴 수도 있다는 점 너그러이 양해 부탁드립니다. 만약 틀린 정보라면 적극적으로 피드백 부탁드립니다! 🧑‍💻 이번 포스팅에서는 JWT와 Stateless에 대해 다룰 것이다. 이를 주제로 다루고자 했던 이유가 있다. 그에 대해 이야기하기 위해 JWT의 특징으로 거슬러 올라가 보겠다. 1. JWT는 클라이언트 측에서 관리를 할 수 있기에 서버의 과부하를 줄일 수 있고, 상태를 저장하지 않아도 된다. 2. JWT에는 필요한 정보를 커스텀해서 저장할 수 있어 클라이언트와 서버 간의 통신에서 추가적인 쿼리를 수행할 필요가 없다. 처음 JWT 토큰을 알게 되었을 때에는, '이래 저..

withCredentials: true 설정을 해도 요청 헤더에 쿠키가 포함되지 않는 문제
Trouble Shooting/React 2023. 6. 24. 13:30

✏️ 장고와 리액트에서 jwt 토큰을 이용한 사용자 인증 구현을 마쳤다. 일단 되게 하자는 마음으로 클린 코드나 모듈화는 뒷전으로 한 상태였다보니 가독성은 물론이거니와 재사용성이라고 함은 1%도 볼 수 없는 구조였다. 리팩토링의 필요성을 느끼고 리액트의 코드를 업데이트하다가 어느 순간 refresh token으로 access token 재발급이 되지 않는 문제가 생겼다. 다음은 문제가 되었던 코드이다. async function refreshAccessToken(refreshUrl) { try { const response = await axios.post( refreshUrl, { withCredentials: true } ); return response.data.access; } catch (err..

access token 과 refresh token 모두 만료됐을 때 브라우저에 저장된 쿠키를 제대로 삭제하지 못하는 문제
Trouble Shooting/Django & DRF 2023. 6. 22. 16:58

✏️ 장고와 리액트를 사용하면서 장고의 simplejwt 라이브러리를 통해 사용자 인증을 구현하고 있었다. 내가 구현하고자 했던 방식은 이러했다. [1] 로그인 시 access token과 refresh token을 HttpOnly 쿠키로 저장하여 클라이언트 측으로 발급 [2] 몇 가지를 제외한 모든 API 요청에 access token의 유효기간을 검사하는 방식으로 사용자 검증을 한다. [2-1] 이때 access token의 유효기간이 만료됐다면, refresh token으로 access token을 재발급한다. [2-2] 만일, refresh token의 유효기간도 만료됐다면 브라우저에 있는 쿠키를 삭제하며 로그아웃을 한다. [3] 사용자는 재로그인을 하여 토큰을 다시 발급받을 수 있다. 🧑‍💻 t..

article thumbnail
JWT를 어떻게 다뤄야 할까?
TIL 2023. 6. 20. 11:34

❗️ 시작하기에 앞서 이 글은 JWT를 이용한 사용자 인증을 구현하기 위해 공부하면서 내 머릿속에 쌓아둔 정보를 정리하고 공유하는 목적에서 작성한 글입니다. 그렇기에 공식 문서 혹은 A to Z로 아주 잘 정리된 글이 아닐 수 있다는 점을 이 글을 읽어주시는 모든 분들께 양해 부탁드리겠습니다. 회원가입을 필요로 하는 모든 사이트에는 사용자 인증 기능이 들어간다. 사용자 인증이란 말 그대로 사용자를 인증한다는 것인데, 해당 사용자가 이 서비스를 사용할 수 있는 권한이 있는 사람인지에 대한 검증이라고 보면 될 거 같다. 사용자 인증에 사용되는 여러 가지 방식 중 필자가 구현했던 JWT에 대한 이야기를 공유해보고자 한다. JWT를 이용한 사용자 인증 방식에 대해 공부하면서 느낀 것은 이렇다. JWT를 다루는 ..

728x90