한 일

Json

토큰

리팩토링

cors


JSON

요청을 받아서 응답을 해주는 과정에서 res.end() 를 하면 잘 전달이 되는데 res.json() res.send() 의 경우에는 전달이 되지 않는다….. 이문제는 계속해서 찾아봐야 겠다….

로그인을 성공할 때 토큰을 클라이언트에 전달해줘야 하는 과정에서 필요한 부분이다.

토큰( JWT )

토큰은 클라이언트와 서버가 로그인을 한 이후로 로그인정보를 필요로 하는 작업등에서 계속해서 로그인 정보를 요청하고 응답할때마다 전송해주는 경우에는 너무나도 보안이 취약하기 때문에 세션,쿠키 와 토큰등등의 방법으로 보안적인 이슈를 해결한다.

세션,쿠키에 경우에는 서버에서 로그인정보를 가지고 있고 유저가 작업을 시도할 때마다 키를 이용해 접근을 한다. 이 경우에는 키를 해킹당할 경우 서버쪽에서 유저가 주는지 불법경로로 주는지 알수가 없기 때문에 보안에 취약하다.

하지만 토큰의 경우에는 유저가 정보를 가지고 있고, 그걸 해독 할 수 있는 유일한 키를 서버가 가지고 있다. 그래서 토큰을 해킹당할 경우에도 조금 더 안전하게 개인정보를 보관할 수 있게 된다. 개인이 해킹당하는 것보다 서버가 해킹당하는 것이 더 어렵기 때문에…

토큰은 헤더,정보,암호로 구성되어 있고, 각정보마다 .을 통해 구분한다. 로그인을 시도하는 순간 클라이언트에 토큰을 전달해주고 이후에 토큰으로만 통신을 하게되어 보안이 강력하게 된다. 그리고 짧은 만료시간을 주어 갈취당하더라도 시간이 만료되어 사용 할 수 없게 만들어 더욱더 안전하게 만들 수 있게 된다.

cors

도메인 주소가 다를 경우에 접근 할 수 없게 제한하게 된다. cross-origin resource sharing 이다.

식당의 웹페이지를 만들어서 로그인을 할 경우에 cors error가 계속해서 뜨게 되었다. 이 문제는 npm install cors 를 하여 cors 모듈을 받아와서 app.use(cors()) 를 해줌으로써 모든 접근을 허용하였다.

리팩토링

코드를 보니 도메인을 불러오는 uri 요청 부분과 함수를 분리하여 더욱더 코드를 깔끔하고 확실하게 알아볼 수 있도록 구분하였다.

계속해서 발전해 나갈 예정이다.