<aside>
💡 세션으로 하는 인증방식은 해봤다!
이번에는 토큰기반의 인증방식을 해보자!
</aside>
개인적으로 세션보다는 약간 프로세스가 쪼오끔 더 복잡했던 토큰기반 인증방식에 대해 정리해보자!
Token이란!?
일종의 인증정보! 웹 어플리케이션에게 본인임을 증명하고 그에 맞는 권한을 부여 받게 해주는 일종의 마패이다!
Token기반의 인증방식과 Session기반 인증방식의 차이
둘의 가장 큰 차이는 바로 인증정보를 저장하는 장소의 다름에 있다.
- Session기반 인증방식
앞서 우리가 살펴 본 것 처럼, Session기반의 인증방식은 인증정보를 서버쪽에 보관을 하고,
서버에서 세션아이디를 생성 하고 저장해둔 뒤에 이를 클라이언트에게 쿠키에 넣어 보내 준다.(connect.sid)
그리고 이를 기반으로 나중에 클라이언트의 요청에 진짜 세션아이디가 맞는지 확인하게 된다.
- Token기반 인증방식
Session기반과는 다르게, 인증정보를 클라이언트 쪽에 저장하게 된다.
어!? 그러면 위험한것 아닌가...? 라는 생각이 들겠지만, 토큰은 클라이언트에게 전달 되는 것은 맞지만,
다 해싱처리가 된 이후에 클라이언트에게 보내주게 된다.(이때 해싱에 사용되는 것이 JWT토큰이다.)
⇒ 이러한 차이때문에, 서버가 여러대일 경우에는 Token기반의 인증방식이 아무래도 편리하게 된다.
⭐️Token기반의 인증절차⭐️
- Client → Server: 로그인요청(Id와 해싱된 PW전달)
- Server→ DB: 전달 받은 정보를 DB와 비교