인증서 종류는 크게 두가지로 나뉜다.
작동하는 원리에 따라 각각 세션,토큰이라 부른다.
1. 세션 사용 - 세션 기반 인증
2. 토큰 사용 - 토큰 기반 인증
세션 : 서버가 저장하는 사이트 방문자들에 대한 기록
누군가 서번에 첫 리퀘스트를 보내면 서버는 이방문에 대한 데이터를 세션에 저장
=> 방문을 특정 지을수있는 값(아이디), ip주소, 마지막 방문, 브라우저정보 등을 저장.
리스폰스 set-Cookie 헤더에 새롭게 만든 세션의 아이디 추가 후 클라이언트에게 전달.
다음에 같은 클라이언트가 리퀘스트를 보내면 쿠키로 세션아이디가 같이 보내지는데 이것만 확인하면 방문자가 누군지 파악할수있다.

*이메일과 비밀번호가 확인되면 세션에 한명의 유저를 특정지을수있는 user_id 저장. 로그인이 안된 유저는 NULL 저장

즉, 클라이언트가 쿠키로 세션 아이디를 보내주기 때문에 서버는 매칭되는 정보를 찾아서 리퀘스트를 보낸 유저를 찾을수있다.
❗ 특정시간이 지나거나, 유저가 로그아웃리퀘스트를 보내면 서버는 해당 세션이나 로그인 유저를 만료 처리한다.
인증 토큰을 이용해 리퀘스트를 보낸 유저 파악.
: 유저에 대한 정보를 암호화한 문자열
토큰 자체를 해석해서 사용한다.
로그인 리퀘스트를 통해 이메일과 비밀번호를 보냈고 서버가 이 정보가 유효하다는걸 확인했다고 치고.
서버는 토큰을 만든다.
=> 일반적으로 서버만 알수있는 비밀키를 사용하여 암호화한다.


(암호화 방식)

토큰을 돌려받을 때도 쿠키보다는 Authorization헤더로 돌려받는 것이 일반적이다.

인증 토큰을 사용하면 문자열 토큰을 갖고 있기만 하고 만료시간이 지나지않았으면 항상 로그인 상태를 유지할수있다.
=> 유저가 로그아웃 하고 싶으면 직접 토큰을 삭제 하면 된다.