<aside> 💡 세션으로 하는 인증방식은 해봤다! 이번에는 토큰기반의 인증방식을 해보자!

</aside>

개인적으로 세션보다는 약간 프로세스가 쪼오끔 더 복잡했던 토큰기반 인증방식에 대해 정리해보자!

Token이란!?

일종의 인증정보! 웹 어플리케이션에게 본인임을 증명하고 그에 맞는 권한을 부여 받게 해주는 일종의 마패이다!

Token기반의 인증방식과 Session기반 인증방식의 차이

둘의 가장 큰 차이는 바로 인증정보를 저장하는 장소의 다름에 있다.

  1. Session기반 인증방식 앞서 우리가 살펴 본 것 처럼, Session기반의 인증방식은 인증정보를 서버쪽에 보관을 하고, 서버에서 세션아이디를 생성 하고 저장해둔 뒤에 이를 클라이언트에게 쿠키에 넣어 보내 준다.(connect.sid) 그리고 이를 기반으로 나중에 클라이언트의 요청에 진짜 세션아이디가 맞는지 확인하게 된다.
  2. Token기반 인증방식 Session기반과는 다르게, 인증정보를 클라이언트 쪽에 저장하게 된다. 어!? 그러면 위험한것 아닌가...? 라는 생각이 들겠지만, 토큰은 클라이언트에게 전달 되는 것은 맞지만, 다 해싱처리가 된 이후에 클라이언트에게 보내주게 된다.(이때 해싱에 사용되는 것이 JWT토큰이다.)

⇒ 이러한 차이때문에, 서버가 여러대일 경우에는 Token기반의 인증방식이 아무래도 편리하게 된다.

⭐️Token기반의 인증절차⭐️

  1. Client → Server: 로그인요청(Id와 해싱된 PW전달)
  2. Server→ DB: 전달 받은 정보를 DB와 비교