본문 바로가기

Django

(17)
[Django] set_cookie를 이용한 COOKIE에 Token 저장하기 (로그인 할때) 1. set_cookie 유저가 로그인에 성공하였을때, 해당 유저에게 발급되는 토큰 (access token, refresh token)이 생성된다. 이 토큰들은 cookie에 저장해야한다. HttpResponse 또는 JsonResponse에 장고에서 제공하는 set_cookie 메서드를 사용하여, cookie에 토큰 값을 실어서 보낼 수 있다. HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, samesite=None) 2. equest header 정보 Http request header를 출력해보면 header에는 다음과 같은 정보가 ..
[Django] DRF의 simple-jwt를 이용한 로그인 기능 구현 (1) 요즘은 DRF의 jwt 인증 부분 라이브러리를 simple-jwt를 사용한다고 한다. pyjwt 등 이전에 사용하던 jwt 인증 라이브러리는 더 이상의 업데이트가 이루어지지 않고 최근 활발히 업데이트가 되는 simple-jwt 라이브러리를 이용한 로그인 기능을 구현할 것이다. 1. simple-jwt 라이브러리 설치 및 세팅 https://smin1620.tistory.com/40 [Django] DRF의 simpleJWT https://django-rest-framework-simplejwt.readthedocs.io/en/latest/getting_started.html#usage Getting started — Simple JWT 5.1.0.post11+g58b1874 documentation © ..
[Django] DRF의 simpleJWT https://django-rest-framework-simplejwt.readthedocs.io/en/latest/getting_started.html#usage Getting started — Simple JWT 5.1.0.post11+g58b1874 documentation © Copyright 2020, David Sanders Revision 58b18740. django-rest-framework-simplejwt.readthedocs.io DRF 에서 JWT 인증에서 simple-jwt 라이브러리를 사용할 것을 권장한다고 공식 문서에 나와있다. (jwt 라이브러리는 업데이트 중지) 1. simple-jwt 라이브러리 설치 및 세팅 simple-jwt 라이브러리를 설치한다. pip instal..
[Django] DRF의 JWT Authentication Session based authentication JWT의 장점을 알기 위해서는 먼저 session based authentication을 알아야 한다. JWT를 사용하기 이전에는 주로 session을 이용한 인증이 이루어졌다. How session authentication works session 인증 과정 클라이언트에서 사용자의 인증 정보를 서버에 전달합니다. 서버는 인증을 처리한 뒤 해당 user에 대해 session을 생성합니다. session 정보는 서버에 저장되고, 클라이언트는 session id를 받아 브라우저에 저장합니다. 클라이언트는 이후 이루어지는 요청에 session id를 이용합니다. 서버는 전달 받은 session id를 이용하여 저장 중인 session 정보로 인증을 처리합니..
[Django] DRF의 Token Authentication DRF Authentication DRF의 인증은 여러가지의 방법이 있다. BasicAuthentication, TokenAuthentication, SessionAuthentication 등등.. SessionAuthentication 세션을 통한 인증 웹 프론트엔드와 장고가 같은 호스트를 쓴다면 세션 인증 사용 가능 (ex. nginx) Django의 default이며, 외부 서비스에서는 세션 인증 불가능 BasicAuthentication Basic 인증 헤더를 통한 인증 Django의 default이며, 외부 서비스에 매번 username과 password를 넘기는 것은 보안상 위험하다. test 에 적합한 인증 방식 TokenAuthentication Token 헤더를 통한 인증 username..
[Django rest Framework] get_object() get_object() 메서드는 무엇인가? : pk로 queryset을 필터링 하고, 필터링을 통해 queryset에서 pk에 맞는 object를 return 시켜주는 메서드이다. 비교 # DRF get_object() first = self.get_object() # Django ORM second = Second.objects.get(pk=pk) 위 두가지 예시의 코드들은 같은 역할을 한다고 생각하면 쉽다. get_object() # get_object 소스 코드 def get_object(self, queryset=None): """ Returns the object the view is displaying. By default this requires `self.queryset` and a `pk..
[Django rest Framework] Swagger 문서 자동화 ( drf-yasg ) Swagger REST API를 설계, 빌드, 문서화 및 사용하는데 도움이 되는 OpenAPI 사양을 중심으로 구축 된 오픈 소수 도구 세트입니다. Django 프레임워크에서는 drf-yasg 라이브러리를 이용하여 python 코드로 더욱 쉽게 문서 자동화가 가능하다. https://drf-yasg.readthedocs.io/en/stable/ drf-yasg — drf-yasg 1.20.1 documentation © Copyright 2018, Cristi V. Revision 1795ed15. drf-yasg.readthedocs.io https://github.com/axnsan12/drf-yasg/tree/master/testproj GitHub - axnsan12/drf-yasg: Automa..
[Django rest framework] TDD - Unit Test 먼저, 사전과제 개발을 진행하면서 필요하다고 느낀 테스트 코드에 대해서 작성할 것입니다. 틀린 점이 있을 수 있습니다. Django rest framework 라이브러리로 개발을 해오면서 API가 제대로 동작하는지 Postman을 사용하여 확인하였지만, API가 많아질 수록 손수 테스트하기 어려워지기 때문에 테스트 코드를 작성해야 한다. Unit Test : 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 즉, 내가 작성한 코드의 가장 작은 단위인 함수를 테스트 하는 메소드이다. Unit Test가 무엇인가? : 파이썬에는 unittest 라는 유닛테스트를 가능하게 해주는 모듈이 포함되어있다. unittest 외에도 pytest 라는 패키지도 있지만 장고에서는 기본적으로 unit..