더이상 미룰 수 없다 ! 이해하고 싶다 ! JWT 토큰을 이용한 로그인페이지 ! 나도 제발 이해하고 싶다 !! 

그래서 토이프로젝트 팀원 분의 코드를 뜯어보며 조금이라도 이해해 보려 한다. (직접 코드작성은 못함 ^_ㅠ)

 


1. 필요한 라이브러리 import 하기.

 

 

 

2. 로그인 

 

프론트엔드
백엔드

 

  • 로그인을 위해 인풋박스에 이메일과 패스워드 id를 지정하고 let data로 변수를 지정한다.
  • 그리고 ajax를 통해 제이슨 형식으로 로그인정보를 저장해 서버로 보내준다.
  • 서버에서 이메일정보와 패스워드 정보를 받아 확인하고 if 함수를 통해 이메일이 존재하지 않으면 오류 메시지를 리턴한다.
  • 이메일 정보가 맞다면 비밀번호가 일치하는지 확인하고, 비밀번호가 맞지 않으면 오류 메시지를 클라이언트쪽으로 리턴해 준다.
  • 그리고 모두 오류가 없다면 토큰을 생성한다.
  • 그 후 로그인 성공 메시지를 토큰을 담은 쿠키와 함께 리턴한다.
  • 마지막으로 서버가 요청을 제대로 처리했다는 의미로 200을 리턴해 준다.

 

 

3. 로그아웃 

 

프론트엔드
백엔드

 

  • 로그아웃 버튼이 click이 되면 이 정보를 get함수로 서버단에 전달한다.
  • 서버단에서 로그아웃 성공 메시지를 화면에 띄워주도록 하고 동시에 쿠키를 없애준다.
  • 화면단에서 화면을 새로고침하여 다시 보여준다.

 

 

4. 유효성 검사

 

프론트엔드
백엔드

 

  • 유효성 검사 사용할때는 서버단에 @jwt_required()가 있으면 된다.
  • 이메일정보와 패스워드 정보가 일치한다면, 로그인 박스를 숨겨준다.
  • 일치하지 않는다면 로그인박스를 보여준다.
  • 서버단에서는 로그인정보를 확인하여 토큰에 저장된 데이터가 일치하지 않으면 result값이 fail임을 리턴해 준다.
  • 만약에 로그인 정보가 일치한다면 토큰에 저장된 데이터를 불러온다.

 

  

5. 갱신

 

백엔드

  •  jwt 토큰은 만료를 정해주지 않으면 그대로 남기 때문에 만료와 갱신에 신경써야한다. 
  • Access_token 의 기간이 만료되면 Refresh_token을 가지고 Access_token을 재발급 받아야 한다.
  • 그래서 토큰 시간이 만료되기 전에 프런트에서 refresh 요청을 보낸다.

 

더보기

flask-bcrypt 를 임포트 하는 과정에서 파이썬 버젼이 맞지 않아 계속해서 오류가 떴다.

터미널창을 이용하여 python3 버전을 업그레이드 해주었더니 오류를 해결 할 수 있었다.

 

파이썬3 업그레이드 명령어 : pip3 install --upgrade pip

 

 

 


[출처] : https://littlezero48.tistory.com/69  (우리팀에 소영님 없으면 어쩔뻔 했나요 ..♥ 감사합니다)

 

이렇게 정리를 했는데도 이해 못하는 나. ^^ 언젠가 이해하는 날이 오겠지 ... 후

내일은 민승님이 구현하신 회원가입 코드를 뜯어봐야 겠다. 괜찮아 ... 언젠가 이해할거야 ... 괜찮아 .... ㅜ

+ Recent posts