로그인 로직

시바코코개발자·2023년 6월 10일
0
  1. 백엔드에게 데이터 요청을 보냈으면, 요청의 주인이 나 (사용자)라는 사실을 알려줘야함
  • 게시글을 쓰거나 데이터를 저장할때 해당 사용자의 고유번호도 저장해야하기 때문에
  1. 알려줄 수 있는 방법엥는 인증토큰, session
  • 인증 토큰은 주로 jwt(json web token,json으로 된 데이터를 암호화한 토큰)을 사용하며 서버의 부담이 없이 어떤 서버에서든토큰을 주고 받을 수 있다는 장점

  • session은 서버에 부담이 크다는 대신, 인증 토큰보다 보안에 더 안정된 상황에서 데이터를 주고 받을 수 있다는 장점

  1. 세션의 경우 로그인하면 백엔드에서 세션-id를 보통 쿠키(탈취당하지 않기위해)를 통해 프론트엔드에 전달
    인증 토큰의 경우 응답 데이터에 토큰과 이를 재발급할 수 있는 refresh토큰을 전달

  2. 인증 토큰은 인증이 필요한 api요청에 항상 header에 실어서 보내야하며 토큰을 보내는 방법에는 2가지 방법이 존재

-axios인스턴스를 생성할때 기본값으로 토큰을 설정하면 bearer는 해당 토큰이 jwt토큰이라는 것을 알려주는 일조으이 분류이므로 앞에서 붙여 사용

  • axios의 인터셉터를 사용하여 백엔드에 요청을 보내기전에 데이터를 가로채 헤더에 토큰을 심어서 전송
  1. 인증 토큰은 짧은 만료기한을 가지고 있으며 만료된다면 프로덕트의 로직에 따라 로그아웃 로직을 실행하거나 만료되었다는 에러와 함께 응답데이터가 전달되면 리프레쉬 토큰으로 재발급 후 재요청

-axios의 인터셉터를 사용하여 프론트엔드가 응답을 받기전에 데이터를 가로채 백엔드에 jwt재발급 요청을 보내고 다시 토큰을 실어서 재요청

  • 모든 것은 사용자가 데이터를 받기전에 이루어지므로
    사용자는 리프레쉬 토큰이 있다면, 토큰이 만료된 것을 모르고 사이트를 이용

0개의 댓글