내일배움캠프 오늘 학습 내용
- node 숙련 주차 2,3: JWT와 access token, refresh token, 미들웨어에 대해 배우고 로그인과 회원가입을 구현해본다.
JWT
우리가 사용하는 json파일을 암호화하여 저장할 수 있다. 내용은 header, payload, signature로 구성되어있으며 hearder에는 어떻게 암호화를 했는지 그 방식이 저장되어있고, payload는 실제로 쓰는 데이터, signature는 검증을 하기 위한 부분이다. 각 내용은 .으로 구분하며 jwt.io에서 암호화된 내용을 복호화해 확인해볼 수 있다.
-> 키를 사용하여 복호화하는 것이 아닌 누구나 복호화를 진행할 수 있기에 암호적인 부분은 아니지만 토큰에 들어가있는 값이 바뀌었는지 위변조의 여부를 확인할 수 있는 점에서 사용한다. 또한 만료 기간 등을 서버에서 컨트롤 할 수 있기에 더이상 사용할 수 없는 정보를 캐쉬로 계속해서 접근하지 못하도록 할 수 있다.
access token, refresh token
인증 방식에서 서버거가 상태를 보관하지 않는 stateless 방식이기 때문에 한 번 발급한 토큰이 악용된다면 이것을 서버에서 막을 수 있는 방법이 없다. 따라서 access token은 유효기간을 짧게 잡아 사용자가 리소스에 접근할 수 있게 하는 시간을 짧게 준다. 그리고 그 access token이 만료되었을 때 새로 토큰을 발급해주기 위해 refresh 토큰을 사용한다. refresh token은 따라서 유효기간이 access token보다 훨씬 기며 해당 access token이 만료되었을 때 새롭게 해당 아이디에게 access 권한을 줄 수 있다.
이런 방식을 이용해 쇼핑몰에 회원가입, 로그인, 로그인한 사용자에게만 상품 페이지를 보여주는 권한을 줄 수 있는 예제 사이트를 제작 중이다. 지금은 기본 틀만 새로 잡았고, 내일 전부 구현해 실제 작동하는 것까지 확인해보기로 한다.
'javascript+node.js' 카테고리의 다른 글
| 11/10 노드 숙련 수업 4 (0) | 2023.11.10 |
|---|---|
| 11/9 노드 숙련 수업 3 (0) | 2023.11.09 |
| 11/7 노드 숙련 수업 1 (0) | 2023.11.07 |
| 11/6 노드 입문 수업 4 (0) | 2023.11.06 |
| 11/3 노드 입문 수업 3 (1) | 2023.11.03 |
댓글