Session, token 중에 왜 token 인증일까?

김남형·2021년 3월 19일
0
post-thumbnail

로그인은 무엇인가?

로그인은 클라이언트가 접근허가 증명을 위해 자기 자신을 증명하는 것입니다.

로그인은 어떻게 할 수 있을까?

HTTP는 Connectionless, Stateless인데

  • 비연결성이란 클라이언트가 요청을 하고 서버가 해당 요청에 응답을 하게 되면 연결이 끊어집니다.
    이 특징으로 상태가 없게 됩니다. 그래서 클라이언트가 동일한 요청을 보내더라도 인증을 계속 해야 합니다.

평소에 생각하던 로그인과 정보 요청 방법이 아닌데 어떻게 가능 한지 궁금했습니다.

서버 기반(Session) / Token 인증이있다!

Session, Token인증에 관해 자세한 설명은 인터넷에 워낙 자료 정리가 잘되어있으니까요!

내가 Token 인증을 선택한 이유

  • 세션은 데이터를 저장하지 않습니다. 그래서 정보를 꺼내기 위해 매번 데이터베이스를 조회해야한다.
  • Oauth로의 확장을 위해서입니다 (예를 들어 구글로그인, 페이스북 로그인 등)
  • 쿠키는 발행한 서버에서만 유용하지만 토큰은 html body의 형태로 전달하기 때문에 다른 도메인에서도 사용 할 수 있다.

JWT 인증 흐름

  • 엑세스 토큰을 얻기 위해 클라이언트는 요청 본문에 아이디와 패스워드로 요청 합니다.
  • 서버는 사용자의 아이디와 패스워드의 유효성을 검사 한 다음에 엑세스 토큰을 반환 합니다.
  • 요청마다 헤더에 JWT 토큰을 함께 보냅니다.
  • 유효성 검사 후 응답 합니다.

스프링에서 JWT를 사용하려면 Spring security 필수!

스프링 시큐리티 Docs 블로그 많은 예제들이 있지만 제대로 사용하기 위해서는 공식문서를 정독하고 사용해야한다.

profile
제빵사에서 개발자되기

0개의 댓글