backend 3

BE (3) - Express 백엔드 token 관련 해킹 예방하기

Access Token 의 문제점 여기서 지칭하는 Access Token은 단순히 아래 코드와 같이 jwt.sign() 을 이용해 반환받은 auth 관련 token 입니다. const accessToken = jwt.sign(userObject, secretKey); Refresh Token을 사용하지 않는 Express backend는 jwt.sign()을 통해 반환받은 Access Token이 하나만 있다면 해당 token을 갖고 계속 인증이 필요한 요청을 수행할 수 있습니다. jwt.sign()은 실행할 때마다 다른 token을 반환하지만 기본적으로는 과거에 반환한 token은 만료가 되지 않기 때문에 보안 상 관리하기 까다롭습니다. 임시 해결법 jwt.sign()으로 token을 발행할 때 tok..

개발 2024.01.31

BE (2) - PUT vs. PATCH

HTTP method는 기본적으로 서버에 어떤 작업을 수행할 것인지에 대한 정보를 전달하기 위해서 사용됩니다. 데이터를 서버에서 받아올 때 사용하는 GET method, 데이터를 서버에 등록할 때 사용하는 POST method, 서버에 있는 데이터를 삭제하기 위해 사용하는 DELETE method 등이 있습니다. 여러 method 들 중에서 데이터를 수정할 때 사용하는 method는 PUT 과 PATCH 두 가지가 있는데 이 둘의 차이점에 대해서 알아보도록 하겠습니다. PUT method 데이터를 '수정'한다는 느낌보다는 '교체'라는 단어가 더 잘 들어맞습니다. 데이터의 모든 필드의 값을 입력해야 되고 데이터 전체가 교체됩니다. //PUT { "username": "dongsunseng", "email"..

개발 2024.01.25

BE (1) - res.json() vs. res.send() vs. res.end()

res.json() vs. res.send() 기능상으로 수행하는 작업은 거의 동일합니다. res.json() 와 res.send()로 object를 보냈을 때의 차이점 object를 보내는 작업을 처리하는 순서에서 차이가 있습니다. res.json(): 1. 전달하려는 object를 문자열로 stringify합니다. 2. 만약 Content-Type header이 세팅되지 않았을 경우 res 객체의 Content-Type header를 this를 사용해서 "application/json"으로 세팅 해줍니다. 3. res.send()를 사용해서 stringify해준 object를 보내줍니다. → 1. res.json(object) 2. res.send(string) res.send(): 1. res.se..

개발 2024.01.24