본문 바로가기
Coding/Python

Django JWT 토큰인증 정리

by Hide­ 2018. 5. 1.
반응형

범위 : #1-70 Setting up JWT


보통 어플리케이션을 이용하여 인증을 진행할때는 세션을 사용하지 않는다.

그보다 Token을 이용하여 진행하는게 더 편리하고 적합하기 때문이다.

여러가지 방법이 있지만 JWT(Json Web Token)라는 편리한 방법이 있다.

먼저 아래의 명령어를 통해 설치해준다.


pipenv install djangorestframework-jwt

위 명령어를 통해 설치를 진행하고


위처럼 설치가 진행된다.

이제 JWT를 사용하겠다는 설정을 해줘야한다.

settings.py를 열고 아래의 내용을 추가한다.


REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}


DEFAULT_PERMISSION_CLASSES에 permission.IsAuthenticated를 써줌으로써

모든 request는 인증이 필요하다고 설정했다.

다음으로 API인증 토큰을 발급받기위해 urls.py에 관련 경로를 추가해준다.


from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [
path('api-auth-token/', obtain_jwt_token),
]

이제 /api-auth-token/ 주소로 아이디와 패스워드를 보내면 그에 맞는 토큰을 발급해줄 것이다.

username에 아이디를 적고 password에 비밀번호를 적은 후 POST로 보내보면 다음과 같이 토큰을 발급해준다.


이제 실제로 이 토큰을 헤더에 담아서 보내면 된다.

형식은 Authorization: JWT 토큰 형태이다.