[TIL] 로그인 & 회원가입_200417

이민석·2020년 4월 19일
0

TIL

목록 보기
12/14

✔️브라우저에서 로그인 관리를 할 수 있다.
✔️ 프론트와 백앤드의 통신을 구체적으로 이해한다.
✔️ 코드를 직접 치기 전에 POST MAN 을 사용해서 백앤드 api 호출 테스트를 해볼 수 있다.
✔️ access token과 JWT의 개념을 이해하고 말로 설명할 수 있다.
✔️ access token을 왜 사용해야하는지 알고, 프론트에서 어떻게 관리하는지 안다.

Access token

브라우저에서는 상태를 관리하지 않고 있고 http 통신은 stateless이기 때문에 요청을 보낼 때 본인을 알리기 위한 수단이 필요한데 이것이 access token이다. Access token은 암호화 되어있지 않기 때문에 ID, Email, PW와 같은 민감한 정보를 직접 가지고 있으면 보안상 위험하다.

  • 로그인창에서 ID와 PW 입력하고 클릭하면 클릭이벤트로 보통 /login이라는 엔드포인트를 가진 api를 호출한다.
  • 요청을 보낼 때 http 바디로 ID와 PW를 포함시킨다.
  • 백엔드에서 받아서 db에서 확인 후 맞으면 응답을 보내면서 access token을 준다.
  • 하지만 access token은 얼마든지 decode가 가능하기 때문에 PW나 핸드폰 번호 같은 민감한 정보는 저장하지 않고 식별 가능한 아이디 정도만 준다(실제 아이디 아님).
  • JSON Web Toke, JWT 방식으로 access token을 만들어서 보냄.
  • 브라우저에 JWT 저장했다가 백엔드로 다시 보내줘야 하는데 이때 브라우저에서 저장하는 방식은 알고 있다시피 local storage, session storage, cookie가 있다. 각각의 특성에 맞게 정해서 저장하는데 보통 local storage에 저장한다.
  • 예를 들어 /mypage라는 엔드포인트를 요청할 때 백엔드에서는 그것이 어느 유저의 /mypage인지를 모르므로 이때 id 정보가 담긴 accesstoken을 같이 준다.
  • 백엔드에서는 그렇다면 그 아이디에 해당하는 JSON 데이터를 보내주고 프론트는 그 응답에서 다시 필요한 정보를 보여준다.
profile
Still learning

0개의 댓글