WIL_0515

mileage·2022년 5월 15일
0

월요일부터 바쁘게 달려온 항해의 첫 주, 첫 WIL을 써보려 한다.

미니 프로젝트를 진행하며 JWT를 사용한 로그인 구현을 했다.

JWT (JSON Web Token)

JSON 객체를 사용해 정보를 안정성 있게 전달하는 웹 표준

인증받은 사용자들에게 토큰을 발급하고, 서버에 요청을 보낼 때 header에 토큰을 함께 보내는 인증 방식이다.

사용자가 로그인하면 서버에서 계정 정보를 검증, 토큰을 발급한다.
사용자는 토큰을 저장, 서버에 요청할 때 header에 토큰을 함께 전송한다.
서버에서 토큰을 검증 후 요청에 응답한다.


JWT는 토큰 기반 방식 중 가장 많이 사용되는 것으로 header, payload, verify signature 3부분으로 이루어져 있다.

  • header
    암호화 방식, 타입 등 어떻게 인증할지에 대한 정보를 담고 있다.
  • payload
    유저의 ID 값, 유효기간 등 서버에서 보내는 데이터가 들어간다.
  • verify signature
    base64 방식으로 인코딩한 header, payload에 비밀키를 더한 후 서명된다.
    -> 비밀키를 알지 못한다면 복호화가 불가능하다.
    JWT 인증 방식을 구체적으로 살펴보자면
  1. 사용자가 로그인한다.
  2. 서버에서 확인 후 고유 ID 값을 부여해 기타 정보와 함께 payload에 넣는다.
  3. JWT 토큰 유효기간 설정 후, 암호화할 비밀키를 이용, Access 토큰을 발급한다.
  4. 사용자는 발급된 토큰을 받아 저장 후 인증이 필요할 때마다 header에 토큰을 함께 보낸다.
  5. 서버는 해당 토큰을 복호화 후 조작 여부와 유효기간을 확인해 사용자에게 맞는 데이터를 전달한다.

API (Application Programming Interface)

운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식

뭐,, 쉽게 말해 컴퓨터와 사람, 사람과 사람, 컴퓨터와 컴퓨터 등 다른 2개 이상의 사물이나 사람이 소통을 하기 위한 방법이다.

일종의 통로랄까..?

각 사이트 간 연결 통로를 만들어 필요한 데이터 및 정보를 가져갈 수 있게 한다.

예) 네이버 영화 '나 홀로 집에'
https://movie.naver.com/movie/bi/mi/basic.naver?code=10016

movie.naver.com -> 서버의 위치
/movie/bi/mi/basic.naver -> API 주소
code=10016 -> 가져가기로 한 데이터

0개의 댓글