항해 99 1주차
로그인 기능에 사용되는 JWT.
로그인에 필요한 데이터를 구성 요소중 헤더, 페이로드, 서명으로 구성되어 있습니다..
ex) https://jwt.io/
JWT는 헤더에 포함된 Type입니다.
alg 는 서명값을 만드는데 필요한 알고리즘입니다.
헤더와 페이로드, 서버에 있는 비밀 값으로 알고리즘에 넣고 돌리면 서명이 됩니다.
서명값과 계산 결과가 일치한다면 특정 유저인지 확인을 하는 로그인 기능에 사용됩니다.
세션 방식은 Stateful (사용자의 상태를 서버가 기억하고 있다가 유용한 정보로써 활용한다는 것) 이여서 서버가 기억하고 있는 상태와 달라진다면 이전 기존 세션을 종료하게 됩니다.
JWT로는 위와 같은 방식으로 종료시키는 것이 불가능하여 짧게 로그인을 유지하는 Access 토큰과 상대적으로 오래 유지되는 Refresh 토큰 두가지를 사용하여 Access 토큰이 만료되면 DB의 Refresh 토큰을 비교하여 Access 토큰을 새로 발급하는 방법으로 사용합니다.
API(Application Programming Interface) 는 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단입니다.
REST 형식의 API 는 과거 SOAP 형식의 복잡한 방식을 대체한 방식입니다.
특징은 각 요청이 어떤 동작이나 정보를 위한 것인지를 요청만으로도 추론이 가능합니다.
Web에서 https://(도메인)/(URL)/(idx) 에서 URL에 맞춘 정보들을 요청한다는 것을 알 수 있고, 정보들 중 idx에 맞춘 특정한 정보를 받아낼 수 있습니다.
C(reate, 생성). R(ead, 조회). U(pdate, 수정). D(elete, 삭제) 기능을 만들 때도 사용됩니다.
REST API 에서는 GET, POST, DELETE, PUT, PATCH 등을 사용하게 됩니다.
각 용도가 제한되어있지는 않지만, 목적에 따라 구분하여 사용하면 어디에 사용되는 API인지 확인이 용이합니다.
결국 REST API 는 HTTP 요청을 보낼 때, 어떤 URI에 어떤 메소드를 사용하는지에 대한 약속입니다.
JWT vs Session vs Token
https://www.youtube.com/watch?v=1QiOXWEbqYQ
RESTful API
https://www.youtube.com/watch?v=iOueE9AXDQQ
PUT vs PATCH
https://papababo.tistory.com/entry/HTTP-METHOD-PUT-vs-PATCH-%EC%B0%A8%EC%9D%B4%EC%A0%90