djoser를 사용한 Django REST Framework에서 인증 기능 구현

djoser란?



djoser은 Django REST Framework에서 기본적인 사용자 인증이나 등록 등의 인증 주위를 지원해주는 라이브러리입니다.
커스텀 모델에 대해서도 사용할 수 있어, Django의 코드를 재이용하는 형태를 취하는 것이 아니라, Single Page Application(이하 SPA)에 의해 피트하는 것 같은 아키텍쳐를 목표로 해 만들어지고 있습니다.

이번에는 djoser의 가장 간단한 인증 기능 구현에 대해 씁니다.
덧붙여 이 인증은 시큐리티의 면 등으로부터 실제로 사용해서는 안 되고, 이하의 JWT 인증과 같은 보다 견고한 시큐러티의 설정이 있습니다.
어디까지나 간편한 인증으로 소개합니다.

JWT 인증 설정은 여기에서 설명합니다.

소스 코드는 이쪽

덧붙여 다음의 모두가 도입 후에 엔드 포인트로서 사용할 수 있습니다.

/users/
/users/me/
/users/confirm/
/users/resend_activation/
/users/set_password/
/users/reset_password/
/users/reset_password_confirm/
/users/set_username/
/users/reset_username/
/users/reset_username_confirm/
/token/login/(Token Based Authentication)
/token/logout/(Token Based Authentication)
/jwt/create/(JSON Web Token Authentication)
/jwt/refresh/(JSON Web Token Authentication)
/jwt/verify/(JSON Web Token Authentication)
Getting started

사용법



우선 설치에서.
$ pip install -U djoser

우선 프로젝트를 만들고
$ django-admin startproject simple_djoser_authentication

프로젝트로 이동합니다.
$ cd simple_djoser_authentication

장고를 설정합니다.

setings.py


   .........

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework', # add
    'djoser' # add

]

urls.py
from django.contrib import admin
from django.urls import path,include #add

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/auth/',include('djoser.urls')), #add
]

이것뿐입니다.

이 후에 마이그레이션하고 Admin 사용자를 만들어 로컬로 시작합니다.
$ python manage.py migrations
$ python manage.py createsuperuser
Username: Admin
Email address: [email protected]
Password:*********** 
$ python manage.py runserver

그리고
http://localhost:8000/api/auth/
에 액세스합니다.

그러면


위와 같은 화면이 표시됩니다.

그리고 다음
http://localhost:8000/api/auth/users/
방문하면,



위와 같은 사용자 정보 목록이 표시됩니다.

이것만으로 인증 주위의 기본적인 기능은 도입 완료입니다.

좋은 웹페이지 즐겨찾기