Django 013 | WeStagram #5 로그인 JWT 적용

This Is Empty.·2021년 9월 24일
0

Django

목록 보기
14/20

WeStagram 로그인 JWT

  1. Authentication 절차를 통해 access token을 생성한다. access token에는 유저 정보를 확인할 수 있는 정보가 들어가 있어야 한다 (예를 들어 user id).
  2. 유저가 request를 보낼때 access token을 첨부해서 보낸다.
  3. 서버에서는 유저가 보낸 access token을 복호화 한다.
  4. 복호화된 데이터를 통해 user id를 얻는다.
  5. user id를 사용해서 database에서 해당 유저의 권한(permission)을 확인하다.
  6. 유저가 충분한 권한을 가지고 있으면 해당 요청을 처리한다.
  7. 유저가 권한을 가지고 있지 않으면 Unauthorized Response(401) 혹은 다른 에러 코드를 보낸다.

1. Views.py 수정

기존 SignInView를 다음과 같이 수정한다.

  1. 필요한 모듈 import

    ERROR발생 관계로 버전을 지정해서 import 해준다.

  2. Json 데이터를 받아오고 이메일이 database안에 존재하는지 검사한다. 존재한다면 해당 객체를 불러온다.
    만약 이메일이나 패스워드를 잘못 입력하거나 입력하지 않았다면 적절한 에러를 반환한다.

  1. 암호화되어 저장된 패스워드와 사용자가 입력한 패스워드를 암호화 해서 비교한다.

  2. 암호가 일치한다면 user객체의 PK를 HS256알고리즘을 사용해 암호화 하여 토큰을 생성한다. 정상적으로 동작하면 토큰을 복호화해 id를 리턴한다.

전체 코드

테스트

profile
Convinced myself, I seek not to convince.

0개의 댓글