Node JS 로그인 기본 지식
일단 코드로 시작하기 전에 기본 지식부터 하나하나 시작하도록 하겠습니다. 저는 로그인을 JWT(JsonWebToken)을 이용하여 구현하도록 하겠습니다.
jwt가 뭐야? 그걸 왜써?
일단 로그인이라는 것은 session을 사용하는 방법 그리고 token을 사용하는 방법이 있습니다. 일단 session을 사용하는 방식은 일반적으로 가장 자주 볼 수 있는 방식으로 일반적인 로그인 방식이라고 생각하시면 편합니다. 그렇다면 token 방식은 무엇이냐? Node.js 로 JWT(JsonWebToken) 방식 RESTful api login 구현 제가 쓴 블로그 글입니다만 기본적인 방법이 들어있습니다. 읽어 보시길 권합니다. 검색을 하면 나올 것 이지만 쉽게 설명하면 session방식은 SPA(single page application)에도 잘 어울리지 않고 RESTful 방식에 적합하지 않은게 가장 큽니다. 실제로 모바일 등에서 session을 유지하는 것은 어렵기도 하고 session 자체가 모바일을 환경이 아니라 웹을 가정하고 만들었기 때문에 실제로 여러 플랫폼에서 로그인을 할 때에는 불편한 점들이 많습니다. 물론 좀 더 많은 이유는 위의 글을 읽거나 검색을 해주시길 바랍니다.
그래서 실제로 어떻게 로그인을 구현할 건데?
대략 이런식의 구조입니다.
- 로그인 정보를 Authorization Server에 넘긴다.
- Authorization Server는 DB와 값을 비교
- DB는 token을 반환해준다.
- client는 token을 받는다
- client는 token과 자신이 하고싶은 행동(api call)을 보낸다
- api server는 token을 DB에서 비교
- user의 정보를 반환받는다
- user의 정보가 api call의 권한을 가지고 있다면 실행을 해주고 결과를 반환해준다.
아마 그림과 블로그 글을 읽는다면 어느 정도 쉽게 이해가 갈 것 이라고 생각됩니다. 다음장에서는 이걸 실제로 nodeJS을 이용해 localLogin을 할 수 있게 하겠습니다.