Token 기반 인증 방식은 Cookie와 Session의 단점들을 보완하기 위해 도입이 되었다.
이미지 출처
비행기 티켓 같은 것으로 생각 할 수 있다.
비행기를 타기 위해서는 티켓이 있어야만 탈 수 있고 서버에서 요청을 해서 데이터를 얻기 위해서는 Token이 있어야만 한다.
티켓에는 좌석과 게이트 번호 출발 시간등의 정보가 담겨있고 Token에는 암호화된 데이터가 담겨있다.
1. 클라이언트가 로그인 정보를 요청 바디에 담아 서버에게 보낸다.
2. 서버는 바디에 담긴 정보를 DB에 조회를 한다.
3. 조회한 값이 유효하면 Token을 생성한다.
4. 생성한 Token을 클라이언트에게 전달한다.
5. 클라이언트는 서버에 데이터 요청시 Token을 요청 헤더에 넣어서 보낸다.
6. 서버는 토큰이 자신이 발급한 토큰인지 유효한 토큰인지 검증을 한다.
7. 서버는 검증에 성공하면 클라이언트가 요청한 데이터를 전달한다.
웹 표준 RFC 7519에 등록된 방식으로 가장 많이 사용하는 Token 기반 인증 방식이다.
인증에 필요한 정보들을 암호화시킨 JSON 토큰이다.
JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식
https://victorydntmd.tistory.com/115
https://victorydntmd.tistory.com/286
https://c-yhhhhh.tistory.com/145
https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-JWTjson-web-token-%EB%9E%80-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC
https://about-tech.tistory.com/entry/Security-JWT-%ED%86%A0%ED%81%B0-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EC%A6%9D%EC%9D%B4%EB%9E%80