에러 게시글의 이미지 삭제 관련 이슈에서 나온 에러이다. HTTP는 형식에 대한 개념이 없으며 쿼리 문자열 파라미터를 포함한 모든 것이 문자열이다. 백엔드 서버에서 프론트로 데이터를 넘겨줄 때 그 데이터가 숫자형이어야 한다면 parseInt를 이용해서 문자형을 정수형으로 변경 해주어야 한다. 수정전 수정후
React-Hook 리액트는 두 가지 방법으로 컴포넌트를 만들 수가 있다. 1. Class 형태 2. Function 형태 Class형태는 리액트의 모든 기능들을 파워풀하게 사용할 수가 있다. 하지만 class에서 사용되는 문법들을 알아야하고 다소 복잡하다. 그에 반해 function 형태는 리액트의 제한된 기능만을 사용할 수 있고 Function에서 사용되는 문법만 알면 되기에 단순하다. Function 형태에서 사용할 수 없는 작업은 대표적으로 컴포넌트 내부에 state를 만들어 사용하는 것이다. 또 컴포넌트의 생성,변경,소멸의 event인 life cycle API도 사용할 수가 없었다. 이제는 Class를 작성할 필요 없이 상태 값과 여러 React의 기능을 사용할 수 있게 Hook이 REACT ..
로그아웃 Route 만들기 로그 아웃 하려는 유저를 데이터 베이스에서 찾아서 findOneAndUpdate가 그 역할을 한다. 그 유저의 토큰을 지워 준다. postman을 실행시켜 로그인하고 로그아웃 시켜보자. 데이터베이스에 그 token이 있는지 없는지도 확인해보자. token이 없어진 것을 확인했다.
어떤 사이트를 들어갔을떄 여러가지 페이지가 있다. 어떤 페이지는 로그인된 유저들만 사용할 수 있고 다른 페이지는 누구나 로그인을 하지 않아도 이용할 수 있는 페이지가 있다. 예로 로그인을 해야만 글을 쓸 수 있고 관리자만 이용 할 수 있는 페이지 들이 있다. 그런 것들을 하나하나 체크하기 위해서 이 기능을 만드는 것이다. 저번에는 토큰을 만든 후 토큰을 클라이언트에서는 쿠키에 넣었고 서버에는 유저 데이터 베이스에 넣어 주었다. 그래서 이 두가지를 이용해서 서로 토큰이 맞는지 계속 체크를 하는 것이다. 그렇기 위해서 클라이언트에서 쿠키에 담겨져있는 토큰을 서버에 전달하는 것이다. decode 시킬때 secretToken을 넣으면 user._id가 나온다. 그래서 서버에서 쿠키를 전달 받을때 쿠키가 enco..
password에서 p를 대문자로 써서 password를 받아오지 못했다. 이후 정상적으로 암호화된 비밀번호를 만들었고 확인했다.
로그인 기능을 만들기 로그인 기능을 만들기 위해서는 우선 로그인 route을 만들어야한다. 요청된 이메일을 데이터베이스에서 있는지 찾는다. 요청한 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인. 사용자가 친 비밀번호와 데이터베이스의 비밀번호를 비교를 할 것이다. 만약 맞다면 isMatch로 가져오면 된다. 메소드를 User.js 유저 모델에서 만들면 된다. plainPassword 1234567를 암호화 한 다음에 데이터베이스에 있는 암호화된 비밀번호를 비교해야한다. 왜냐하면 암호화된 비밀번호를 복호화 할 수는 없다. 그럴때 쓰는 것은 bcrypt를 가져온다. 위와 같이 입력한 비밀번호와 암호화된 비밀번호, 에러와 일치했을때의 인자를 갖는 함수를 가진 compare 메소드를 만든다. ..